/* A Bison parser, made from parse.y
   by GNU bison 1.34.  */

#define YYBISON 1  /* Identify Bison output.  */

# define	IDENTIFIER	257
# define	TYPENAME	258
# define	SELFNAME	259
# define	PFUNCNAME	260
# define	SCSPEC	261
# define	TYPESPEC	262
# define	CV_QUALIFIER	263
# define	CONSTANT	264
# define	VAR_FUNC_NAME	265
# define	STRING	266
# define	ELLIPSIS	267
# define	SIZEOF	268
# define	ENUM	269
# define	IF	270
# define	ELSE	271
# define	WHILE	272
# define	DO	273
# define	FOR	274
# define	SWITCH	275
# define	CASE	276
# define	DEFAULT	277
# define	BREAK	278
# define	CONTINUE	279
# define	RETURN_KEYWORD	280
# define	GOTO	281
# define	ASM_KEYWORD	282
# define	TYPEOF	283
# define	ALIGNOF	284
# define	SIGOF	285
# define	ATTRIBUTE	286
# define	EXTENSION	287
# define	LABEL	288
# define	REALPART	289
# define	IMAGPART	290
# define	VA_ARG	291
# define	AGGR	292
# define	VISSPEC	293
# define	DELETE	294
# define	NEW	295
# define	THIS	296
# define	OPERATOR	297
# define	CXX_TRUE	298
# define	CXX_FALSE	299
# define	NAMESPACE	300
# define	TYPENAME_KEYWORD	301
# define	USING	302
# define	LEFT_RIGHT	303
# define	TEMPLATE	304
# define	TYPEID	305
# define	DYNAMIC_CAST	306
# define	STATIC_CAST	307
# define	REINTERPRET_CAST	308
# define	CONST_CAST	309
# define	SCOPE	310
# define	EXPORT	311
# define	EMPTY	312
# define	PTYPENAME	313
# define	NSNAME	314
# define	THROW	315
# define	ASSIGN	316
# define	OROR	317
# define	ANDAND	318
# define	MIN_MAX	319
# define	EQCOMPARE	320
# define	ARITHCOMPARE	321
# define	LSHIFT	322
# define	RSHIFT	323
# define	POINTSAT_STAR	324
# define	DOT_STAR	325
# define	UNARY	326
# define	PLUSPLUS	327
# define	MINUSMINUS	328
# define	HYPERUNARY	329
# define	POINTSAT	330
# define	TRY	331
# define	CATCH	332
# define	EXTERN_LANG_STRING	333
# define	ALL	334
# define	PRE_PARSED_CLASS_DECL	335
# define	DEFARG	336
# define	DEFARG_MARKER	337
# define	PRE_PARSED_FUNCTION_DECL	338
# define	TYPENAME_DEFN	339
# define	IDENTIFIER_DEFN	340
# define	PTYPENAME_DEFN	341
# define	END_OF_LINE	342
# define	END_OF_SAVED_INPUT	343

#line 30 "parse.y"

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

/* !kawai! */
#include "../gcc/config.h"

#include "../gcc/system.h"

#include "../gcc/tree.h"
#include "../gcc/input.h"
#include "../gcc/flags.h"
#include "cp-tree.h"
#include "lex.h"
#include "../gcc/output.h"
#include "../gcc/except.h"
#include "../gcc/toplev.h"
#include "../gcc/ggc.h"
/* end of !kawai! */

extern struct obstack permanent_obstack;

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

#define OP0(NODE) (TREE_OPERAND (NODE, 0))
#define OP1(NODE) (TREE_OPERAND (NODE, 1))

/* Contains the statement keyword (if/while/do) to include in an
   error message if the user supplies an empty conditional expression.  */
static const char *cond_stmt_keyword;

/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
int have_extern_spec;
int used_extern_spec;

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs;

/* List of prefix attributes in effect.
   Prefix attributes are parsed by the reserved_declspecs and declmods
   rules.  They create a list that contains *both* declspecs and attrs.  */
/* ??? It is not clear yet that all cases where an attribute can now appear in
   a declspec list have been updated.  */
static tree prefix_attributes;

/* When defining an enumeration, this is the type of the enumeration.  */
static tree current_enum_type;

/* When parsing a conversion operator name, this is the scope of the
   operator itself.  */
static tree saved_scopes;

static tree empty_parms PARAMS ((void));
static tree parse_decl0 PARAMS ((tree, tree, tree, tree, int));
static tree parse_decl PARAMS ((tree, tree, int));
static void parse_end_decl PARAMS ((tree, tree, tree));
static tree parse_field0 PARAMS ((tree, tree, tree, tree, tree, tree));
static tree parse_field PARAMS ((tree, tree, tree, tree));
static tree parse_bitfield0 PARAMS ((tree, tree, tree, tree, tree));
static tree parse_bitfield PARAMS ((tree, tree, tree));
static tree parse_method PARAMS ((tree, tree, tree));
static void frob_specs PARAMS ((tree, tree));
static void check_class_key PARAMS ((tree, tree));

/* Cons up an empty parameter list.  */
static inline tree
empty_parms ()
{
  tree parms;

#ifndef NO_IMPLICIT_EXTERN_C
  if (in_system_header && current_class_type == NULL 
      && current_lang_name == lang_name_c)
    parms = NULL_TREE;
  else
#endif
  parms = void_list_node;
  return parms;
}

/* Record the decl-specifiers, attributes and type lookups from the
   decl-specifier-seq in a declaration.  */

static void
frob_specs (specs_attrs, lookups)
     tree specs_attrs, lookups;
{
  save_type_access_control (lookups);
  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
  if (current_declspecs
      && TREE_CODE (current_declspecs) != TREE_LIST)
    current_declspecs = build_tree_list (NULL_TREE, current_declspecs);
  if (have_extern_spec && !used_extern_spec)
    {
      /* We have to indicate that there is an "extern", but that it
         was part of a language specifier.  For instance,
	 
    	    extern "C" typedef int (*Ptr) ();

         is well formed.  */
      current_declspecs = tree_cons (error_mark_node,
				     get_identifier ("extern"), 
				     current_declspecs);
      used_extern_spec = 1;
    }
}

static tree
parse_decl (declarator, attributes, initialized)
     tree declarator, attributes;
     int initialized;
{
  return start_decl (declarator, current_declspecs, initialized,
		     attributes, prefix_attributes);
}

static tree
parse_decl0 (declarator, specs_attrs, lookups, attributes, initialized)
     tree declarator, specs_attrs, lookups, attributes;
     int initialized;
{
  frob_specs (specs_attrs, lookups);
  return parse_decl (declarator, attributes, initialized);
}

static void
parse_end_decl (decl, init, asmspec)
     tree decl, init, asmspec;
{
  /* If decl is NULL_TREE, then this was a variable declaration using
     () syntax for the initializer, so we handled it in grokdeclarator.  */
  if (decl)
    decl_type_access_control (decl);
  cp_finish_decl (decl, init, asmspec, init ? LOOKUP_ONLYCONVERTING : 0);
}

static tree
parse_field (declarator, attributes, asmspec, init)
     tree declarator, attributes, asmspec, init;
{
  tree d = grokfield (declarator, current_declspecs, init, asmspec,
		      chainon (attributes, prefix_attributes));
  decl_type_access_control (d);
  return d;
}

static tree
parse_field0 (declarator, specs_attrs, lookups, attributes, asmspec, init)
     tree declarator, specs_attrs, lookups, attributes, asmspec, init;
{
  frob_specs (specs_attrs, lookups);
  return parse_field (declarator, attributes, asmspec, init);
}

static tree
parse_bitfield (declarator, attributes, width)
     tree declarator, attributes, width;
{
  tree d = grokbitfield (declarator, current_declspecs, width);
  cplus_decl_attributes (&d, chainon (attributes, prefix_attributes), 0);
  decl_type_access_control (d);
  return d;
}

static tree
parse_bitfield0 (declarator, specs_attrs, lookups, attributes, width)
     tree declarator, specs_attrs, lookups, attributes, width;
{
  frob_specs (specs_attrs, lookups);
  return parse_bitfield (declarator, attributes, width);
}

static tree
parse_method (declarator, specs_attrs, lookups)
     tree declarator, specs_attrs, lookups;
{
  tree d;
  frob_specs (specs_attrs, lookups);
  d = start_method (current_declspecs, declarator, prefix_attributes);
  decl_type_access_control (d);
  return d;
}

static void
check_class_key (key, aggr)
     tree key;
     tree aggr;
{
  if (TREE_CODE (key) == TREE_LIST)
    key = TREE_VALUE (key);
  if ((key == union_type_node) != (TREE_CODE (aggr) == UNION_TYPE))
    pedwarn ("`%s' tag used in naming `%#T'",
	     key == union_type_node ? "union"
	     : key == record_type_node ? "struct" : "class", aggr);
}

void
cp_parse_init ()
{
  ggc_add_tree_root (&current_declspecs, 1);
  ggc_add_tree_root (&prefix_attributes, 1);
  ggc_add_tree_root (&current_enum_type, 1);
  ggc_add_tree_root (&saved_scopes, 1);
}

/* Rename the "yyparse" function so that we can override it elsewhere.  */
#define yyparse yyparse_1

#line 240 "parse.y"
#ifndef YYSTYPE
typedef union {
  long itype; 
  tree ttype; 
  char *strtype; 
  enum tree_code code; 
  flagged_type_tree ftype;
  struct unparsed_text *pi;
} yystype;
# define YYSTYPE yystype
#endif
#line 447 "parse.y"

/* Tell yyparse how to print a token's value, if yydebug is set.  */
#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint			PARAMS ((FILE *, int, YYSTYPE));
#ifndef YYDEBUG
# define YYDEBUG 0
#endif



#define	YYFINAL		1830
#define	YYFLAG		-32768
#define	YYNTBASE	114

/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 404)

/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   112,     2,     2,     2,    85,    73,     2,
      95,   110,    83,    81,    62,    82,    94,    84,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,    65,    63,
      77,    67,    78,    68,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,    96,     2,   113,    72,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,    61,    71,   111,    91,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    59,    60,    64,    66,    69,    70,    74,
      75,    76,    79,    80,    86,    87,    88,    89,    90,    92,
      93,    97,    98,    99,   100,   101,   102,   103,   104,   105,
     106,   107,   108,   109
};

#if YYDEBUG
static const short yyprhs[] =
{
       0,     0,     1,     3,     4,     7,    10,    12,    13,    14,
      15,    17,    19,    20,    23,    26,    28,    29,    33,    35,
      41,    46,    52,    57,    58,    65,    66,    72,    74,    77,
      79,    82,    83,    90,    93,    97,   101,   105,   109,   114,
     115,   121,   124,   128,   130,   132,   135,   138,   140,   143,
     144,   150,   154,   156,   158,   160,   164,   166,   167,   170,
     173,   177,   179,   183,   185,   189,   191,   195,   198,   201,
     204,   206,   208,   214,   219,   222,   225,   229,   233,   236,
     239,   243,   247,   250,   253,   256,   259,   262,   265,   267,
     269,   271,   273,   274,   276,   279,   280,   282,   283,   290,
     294,   298,   302,   303,   312,   318,   319,   329,   336,   337,
     346,   352,   353,   363,   370,   373,   376,   378,   381,   383,
     390,   399,   404,   411,   418,   423,   426,   428,   431,   434,
     436,   439,   441,   444,   447,   452,   455,   458,   459,   460,
     462,   466,   469,   473,   475,   480,   483,   488,   491,   496,
     499,   501,   503,   505,   507,   509,   511,   513,   515,   517,
     519,   521,   523,   524,   531,   532,   539,   540,   546,   547,
     553,   554,   562,   563,   571,   572,   579,   580,   587,   588,
     589,   595,   601,   603,   605,   611,   617,   618,   620,   622,
     623,   625,   627,   631,   633,   635,   638,   640,   644,   646,
     648,   650,   652,   654,   656,   658,   660,   664,   666,   670,
     671,   673,   675,   676,   684,   686,   688,   692,   697,   701,
     705,   709,   713,   717,   719,   721,   723,   726,   729,   732,
     735,   738,   741,   744,   749,   752,   757,   760,   764,   768,
     773,   778,   784,   790,   797,   800,   805,   811,   814,   817,
     821,   825,   829,   831,   835,   838,   842,   847,   849,   852,
     858,   860,   864,   868,   872,   876,   880,   884,   888,   892,
     896,   900,   904,   908,   912,   916,   920,   924,   928,   932,
     936,   942,   946,   950,   952,   955,   957,   961,   965,   969,
     973,   977,   981,   985,   989,   993,   997,  1001,  1005,  1009,
    1013,  1017,  1021,  1025,  1029,  1035,  1039,  1043,  1045,  1048,
    1052,  1056,  1058,  1060,  1062,  1064,  1066,  1067,  1073,  1079,
    1085,  1091,  1097,  1099,  1101,  1103,  1105,  1108,  1110,  1113,
    1116,  1120,  1125,  1130,  1132,  1134,  1136,  1140,  1142,  1144,
    1146,  1148,  1150,  1154,  1158,  1162,  1163,  1168,  1173,  1176,
    1181,  1184,  1191,  1196,  1199,  1202,  1204,  1209,  1211,  1219,
    1227,  1235,  1243,  1248,  1253,  1256,  1259,  1262,  1264,  1269,
    1272,  1275,  1281,  1285,  1288,  1291,  1297,  1301,  1307,  1311,
    1316,  1323,  1326,  1328,  1331,  1333,  1336,  1338,  1340,  1342,
    1345,  1346,  1349,  1352,  1356,  1360,  1364,  1367,  1370,  1373,
    1375,  1377,  1379,  1382,  1385,  1388,  1391,  1393,  1395,  1397,
    1399,  1402,  1405,  1409,  1413,  1417,  1422,  1424,  1427,  1430,
    1432,  1434,  1437,  1440,  1443,  1445,  1448,  1451,  1455,  1457,
    1460,  1463,  1465,  1467,  1469,  1471,  1476,  1481,  1486,  1491,
    1493,  1495,  1497,  1499,  1503,  1505,  1509,  1511,  1515,  1516,
    1521,  1522,  1529,  1533,  1534,  1539,  1541,  1545,  1549,  1550,
    1555,  1559,  1560,  1562,  1564,  1567,  1574,  1576,  1580,  1581,
    1583,  1588,  1595,  1600,  1602,  1604,  1606,  1608,  1610,  1614,
    1615,  1618,  1620,  1623,  1627,  1632,  1634,  1636,  1640,  1645,
    1649,  1655,  1659,  1663,  1667,  1668,  1672,  1676,  1680,  1681,
    1684,  1687,  1688,  1695,  1696,  1702,  1705,  1708,  1711,  1712,
    1713,  1714,  1726,  1728,  1729,  1731,  1732,  1734,  1736,  1739,
    1742,  1745,  1748,  1751,  1754,  1758,  1763,  1767,  1770,  1774,
    1779,  1781,  1784,  1786,  1789,  1792,  1795,  1798,  1802,  1806,
    1809,  1810,  1813,  1817,  1819,  1824,  1826,  1830,  1832,  1834,
    1837,  1840,  1844,  1848,  1849,  1851,  1855,  1858,  1861,  1863,
    1866,  1869,  1872,  1875,  1878,  1881,  1884,  1886,  1889,  1892,
    1896,  1898,  1901,  1904,  1909,  1914,  1917,  1919,  1925,  1930,
    1932,  1933,  1935,  1939,  1940,  1942,  1946,  1948,  1950,  1952,
    1954,  1959,  1964,  1969,  1974,  1979,  1983,  1988,  1993,  1998,
    2003,  2007,  2010,  2012,  2014,  2018,  2020,  2024,  2027,  2029,
    2036,  2037,  2040,  2042,  2045,  2047,  2050,  2054,  2058,  2060,
    2064,  2066,  2069,  2073,  2077,  2080,  2083,  2087,  2089,  2094,
    2099,  2103,  2107,  2110,  2112,  2114,  2117,  2119,  2121,  2124,
    2127,  2129,  2132,  2136,  2140,  2143,  2146,  2150,  2152,  2156,
    2160,  2163,  2166,  2170,  2172,  2177,  2181,  2186,  2190,  2192,
    2195,  2198,  2201,  2204,  2207,  2210,  2213,  2215,  2218,  2223,
    2228,  2231,  2233,  2235,  2237,  2239,  2242,  2247,  2251,  2255,
    2258,  2261,  2264,  2267,  2269,  2272,  2275,  2278,  2281,  2285,
    2287,  2290,  2294,  2299,  2302,  2305,  2308,  2311,  2314,  2317,
    2322,  2325,  2327,  2330,  2333,  2337,  2339,  2343,  2346,  2350,
    2353,  2356,  2360,  2362,  2366,  2371,  2373,  2376,  2380,  2383,
    2386,  2388,  2392,  2395,  2398,  2400,  2403,  2407,  2409,  2413,
    2420,  2425,  2430,  2434,  2440,  2444,  2448,  2452,  2455,  2457,
    2459,  2462,  2465,  2468,  2469,  2471,  2473,  2476,  2480,  2481,
    2486,  2488,  2489,  2490,  2496,  2498,  2499,  2503,  2505,  2508,
    2510,  2513,  2514,  2519,  2521,  2522,  2523,  2529,  2530,  2531,
    2539,  2540,  2541,  2542,  2543,  2556,  2557,  2558,  2566,  2567,
    2573,  2574,  2582,  2583,  2588,  2591,  2594,  2597,  2601,  2608,
    2617,  2628,  2637,  2650,  2661,  2672,  2677,  2681,  2684,  2687,
    2689,  2691,  2693,  2695,  2697,  2698,  2699,  2705,  2706,  2707,
    2713,  2715,  2718,  2719,  2720,  2721,  2727,  2729,  2731,  2735,
    2739,  2742,  2745,  2748,  2751,  2754,  2756,  2759,  2760,  2762,
    2763,  2765,  2767,  2768,  2770,  2772,  2776,  2781,  2789,  2791,
    2795,  2796,  2798,  2800,  2802,  2805,  2808,  2811,  2813,  2816,
    2819,  2820,  2824,  2826,  2828,  2830,  2833,  2836,  2839,  2844,
    2847,  2850,  2853,  2856,  2859,  2862,  2864,  2867,  2869,  2872,
    2874,  2876,  2877,  2878,  2880,  2886,  2890,  2891,  2895,  2896,
    2897,  2902,  2905,  2907,  2909,  2911,  2915,  2916,  2920,  2924,
    2928,  2930,  2931,  2935,  2939,  2943,  2947,  2951,  2955,  2959,
    2963,  2967,  2971,  2975,  2979,  2983,  2987,  2991,  2995,  2999,
    3003,  3007,  3011,  3015,  3019,  3023,  3028,  3032,  3036,  3040,
    3044,  3049,  3053,  3057,  3063,  3069,  3074,  3078
};
static const short yyrhs[] =
{
      -1,   115,     0,     0,   116,   122,     0,   115,   122,     0,
     115,     0,     0,     0,     0,    33,     0,    28,     0,     0,
     123,   124,     0,   155,   152,     0,   149,     0,     0,    57,
     125,   146,     0,   146,     0,   121,    95,   223,   110,    63,
       0,   136,    61,   117,   111,     0,   136,   118,   155,   119,
     152,     0,   136,   118,   149,   119,     0,     0,    46,   170,
      61,   126,   117,   111,     0,     0,    46,    61,   127,   117,
     111,     0,   128,     0,   130,    63,     0,   132,     0,   120,
     124,     0,     0,    46,   170,    67,   129,   135,    63,     0,
      48,   312,     0,    48,   326,   312,     0,    48,   326,   213,
       0,    48,   134,   170,     0,    48,   326,   170,     0,    48,
     326,   134,   170,     0,     0,    48,    46,   133,   135,    63,
       0,    60,    56,     0,   134,    60,    56,     0,   213,     0,
     312,     0,   326,   312,     0,   326,   213,     0,    99,     0,
     136,    99,     0,     0,    50,    77,   138,   141,    78,     0,
      50,    77,    78,     0,   137,     0,   139,     0,   145,     0,
     141,    62,   145,     0,   170,     0,     0,   272,   142,     0,
      47,   142,     0,   137,   272,   142,     0,   143,     0,   143,
      67,   229,     0,   390,     0,   390,    67,   208,     0,   144,
       0,   144,    67,   191,     0,   140,   147,     0,   140,     1,
       0,   155,   152,     0,   148,     0,   146,     0,   136,   118,
     155,   119,   152,     0,   136,   118,   148,   119,     0,   120,
     147,     0,   240,    63,     0,   233,   239,    63,     0,   230,
     238,    63,     0,   264,    63,     0,   240,    63,     0,   233,
     239,    63,     0,   230,   238,    63,     0,   233,    63,     0,
     173,    63,     0,   230,    63,     0,     1,    63,     0,     1,
     111,     0,     1,   109,     0,    63,     0,   393,     0,   224,
       0,   166,     0,     0,   165,     0,   165,    63,     0,     0,
     109,     0,     0,   167,   150,   403,    61,   154,   199,     0,
     161,   151,   153,     0,   161,   151,   361,     0,   161,   151,
       1,     0,     0,   317,     5,    95,   157,   381,   110,   299,
     396,     0,   317,     5,    49,   299,   396,     0,     0,   326,
     317,     5,    95,   158,   381,   110,   299,   396,     0,   326,
     317,     5,    49,   299,   396,     0,     0,   317,   186,    95,
     159,   381,   110,   299,   396,     0,   317,   186,    49,   299,
     396,     0,     0,   326,   317,   186,    95,   160,   381,   110,
     299,   396,     0,   326,   317,   186,    49,   299,   396,     0,
     230,   227,     0,   233,   309,     0,   309,     0,   233,   156,
       0,   156,     0,     5,    95,   381,   110,   299,   396,     0,
      95,     5,   110,    95,   381,   110,   299,   396,     0,     5,
      49,   299,   396,     0,    95,     5,   110,    49,   299,   396,
       0,   186,    95,   381,   110,   299,   396,     0,   186,    49,
     299,   396,     0,   233,   162,     0,   162,     0,   230,   227,
       0,   233,   309,     0,   309,     0,   233,   156,     0,   156,
       0,    26,     3,     0,   164,   257,     0,   164,    95,   201,
     110,     0,   164,    49,     0,    65,   168,     0,     0,     0,
     169,     0,   168,    62,   169,     0,   168,     1,     0,    95,
     201,   110,     0,    49,     0,   171,    95,   201,   110,     0,
     171,    49,     0,   305,    95,   201,   110,     0,   305,    49,
       0,   319,    95,   201,   110,     0,   319,    49,     0,     1,
       0,     3,     0,     4,     0,     5,     0,    59,     0,    60,
       0,     3,     0,    59,     0,    60,     0,   106,     0,   105,
       0,   107,     0,     0,    50,   182,   236,    63,   174,   183,
       0,     0,    50,   182,   230,   227,   175,   183,     0,     0,
      50,   182,   309,   176,   183,     0,     0,    50,   182,   156,
     177,   183,     0,     0,     7,    50,   182,   236,    63,   178,
     183,     0,     0,     7,    50,   182,   230,   227,   179,   183,
       0,     0,     7,    50,   182,   309,   180,   183,     0,     0,
       7,    50,   182,   156,   181,   183,     0,     0,     0,    59,
      77,   189,   188,   187,     0,     4,    77,   189,   188,   187,
       0,   186,     0,   184,     0,   170,    77,   189,    78,   187,
       0,     5,    77,   189,   188,   187,     0,     0,    78,     0,
      80,     0,     0,   190,     0,   191,     0,   190,    62,   191,
       0,   229,     0,    59,     0,   326,    59,     0,   208,     0,
     317,    50,   170,     0,    82,     0,    81,     0,    89,     0,
      90,     0,   112,     0,   200,     0,   207,     0,    49,     0,
      95,   193,   110,     0,    49,     0,    95,   197,   110,     0,
       0,   197,     0,     1,     0,     0,   371,   227,   241,   250,
      67,   198,   258,     0,   193,     0,   111,     0,   334,   332,
     111,     0,   334,   332,     1,   111,     0,   334,     1,   111,
       0,   207,    62,   207,     0,   207,    62,     1,     0,   200,
      62,   207,     0,   200,    62,     1,     0,   207,     0,   200,
       0,   218,     0,   120,   206,     0,    83,   206,     0,    73,
     206,     0,    91,   206,     0,   192,   206,     0,    70,   170,
       0,    14,   202,     0,    14,    95,   229,   110,     0,    30,
     202,     0,    30,    95,   229,   110,     0,   220,   298,     0,
     220,   298,   204,     0,   220,   203,   298,     0,   220,   203,
     298,   204,     0,   220,    95,   229,   110,     0,   220,    95,
     229,   110,   204,     0,   220,   203,    95,   229,   110,     0,
     220,   203,    95,   229,   110,   204,     0,   221,   206,     0,
     221,    96,   113,   206,     0,   221,    96,   193,   113,   206,
       0,    35,   206,     0,    36,   206,     0,    95,   201,   110,
       0,    61,   201,   111,     0,    95,   201,   110,     0,    49,
       0,    95,   236,   110,     0,    67,   258,     0,    95,   229,
     110,     0,   205,    95,   229,   110,     0,   202,     0,   205,
     202,     0,   205,    61,   259,   270,   111,     0,   206,     0,
     207,    86,   207,     0,   207,    87,   207,     0,   207,    81,
     207,     0,   207,    82,   207,     0,   207,    83,   207,     0,
     207,    84,   207,     0,   207,    85,   207,     0,   207,    79,
     207,     0,   207,    80,   207,     0,   207,    76,   207,     0,
     207,    77,   207,     0,   207,    78,   207,     0,   207,    75,
     207,     0,   207,    74,   207,     0,   207,    73,   207,     0,
     207,    71,   207,     0,   207,    72,   207,     0,   207,    70,
     207,     0,   207,    69,   207,     0,   207,    68,   376,    65,
     207,     0,   207,    67,   207,     0,   207,    66,   207,     0,
      64,     0,    64,   207,     0,   206,     0,   208,    86,   208,
       0,   208,    87,   208,     0,   208,    81,   208,     0,   208,
      82,   208,     0,   208,    83,   208,     0,   208,    84,   208,
       0,   208,    85,   208,     0,   208,    79,   208,     0,   208,
      80,   208,     0,   208,    76,   208,     0,   208,    77,   208,
       0,   208,    75,   208,     0,   208,    74,   208,     0,   208,
      73,   208,     0,   208,    71,   208,     0,   208,    72,   208,
       0,   208,    70,   208,     0,   208,    69,   208,     0,   208,
      68,   376,    65,   208,     0,   208,    67,   208,     0,   208,
      66,   208,     0,    64,     0,    64,   208,     0,    91,   391,
     170,     0,    91,   391,   184,     0,   211,     0,   402,     0,
       3,     0,    59,     0,    60,     0,     0,     6,    77,   210,
     189,   188,     0,   402,    77,   210,   189,   188,     0,    50,
     170,    77,   189,   188,     0,    50,     6,    77,   189,   188,
       0,    50,   402,    77,   189,   188,     0,   209,     0,     4,
       0,     5,     0,   215,     0,   251,   215,     0,   209,     0,
      83,   214,     0,    73,   214,     0,    95,   214,   110,     0,
       3,    77,   189,   188,     0,    60,    77,   190,   188,     0,
     311,     0,   209,     0,   216,     0,    95,   214,   110,     0,
     209,     0,    10,     0,   222,     0,   223,     0,    11,     0,
      95,   193,   110,     0,    95,   214,   110,     0,    95,     1,
     110,     0,     0,    95,   219,   337,   110,     0,   209,    95,
     201,   110,     0,   209,    49,     0,   218,    95,   201,   110,
       0,   218,    49,     0,    37,    95,   207,    62,   229,   110,
       0,   218,    96,   193,   113,     0,   218,    89,     0,   218,
      90,     0,    42,     0,     9,    95,   201,   110,     0,   315,
       0,    52,    77,   229,    78,    95,   193,   110,     0,    53,
      77,   229,    78,    95,   193,   110,     0,    54,    77,   229,
      78,    95,   193,   110,     0,    55,    77,   229,    78,    95,
     193,   110,     0,    51,    95,   193,   110,     0,    51,    95,
     229,   110,     0,   326,     3,     0,   326,   211,     0,   326,
     402,     0,   314,     0,   314,    95,   201,   110,     0,   314,
      49,     0,   225,   212,     0,   225,   212,    95,   201,   110,
       0,   225,   212,    49,     0,   225,   213,     0,   225,   314,
       0,   225,   213,    95,   201,   110,     0,   225,   213,    49,
       0,   225,   314,    95,   201,   110,     0,   225,   314,    49,
       0,   225,    91,     8,    49,     0,   225,     8,    56,    91,
       8,    49,     0,   225,     1,     0,    41,     0,   326,    41,
       0,    40,     0,   326,   221,     0,    44,     0,    45,     0,
      12,     0,   223,    12,     0,     0,   218,    94,     0,   218,
      93,     0,   236,   238,    63,     0,   230,   238,    63,     0,
     233,   239,    63,     0,   230,    63,     0,   233,    63,     0,
     120,   226,     0,   303,     0,   309,     0,    49,     0,   228,
      49,     0,   234,   330,     0,   300,   330,     0,   236,   330,
       0,   234,     0,   300,     0,   234,     0,   231,     0,   233,
     236,     0,   236,   232,     0,   236,   235,   232,     0,   233,
     236,   232,     0,   233,   236,   235,     0,   233,   236,   235,
     232,     0,     7,     0,   232,   237,     0,   232,     7,     0,
     300,     0,     7,     0,   233,     9,     0,   233,     7,     0,
     233,   251,     0,   236,     0,   300,   236,     0,   236,   235,
       0,   300,   236,   235,     0,   237,     0,   235,   237,     0,
     235,   251,     0,   251,     0,   264,     0,     8,     0,   306,
       0,    29,    95,   193,   110,     0,    29,    95,   229,   110,
       0,    31,    95,   193,   110,     0,    31,    95,   229,   110,
       0,     8,     0,     9,     0,   264,     0,   246,     0,   238,
      62,   242,     0,   247,     0,   239,    62,   242,     0,   248,
       0,   240,    62,   242,     0,     0,   121,    95,   223,   110,
       0,     0,   227,   241,   250,    67,   243,   258,     0,   227,
     241,   250,     0,     0,   250,    67,   245,   258,     0,   250,
       0,   227,   241,   244,     0,   309,   241,   244,     0,     0,
     309,   241,   249,   244,     0,   156,   241,   250,     0,     0,
     251,     0,   252,     0,   251,   252,     0,    32,    95,    95,
     253,   110,   110,     0,   254,     0,   253,    62,   254,     0,
       0,   255,     0,   255,    95,     3,   110,     0,   255,    95,
       3,    62,   201,   110,     0,   255,    95,   201,   110,     0,
     170,     0,     7,     0,     8,     0,     9,     0,   170,     0,
     256,    62,   170,     0,     0,    67,   258,     0,   207,     0,
      61,   111,     0,    61,   259,   111,     0,    61,   259,    62,
     111,     0,     1,     0,   258,     0,   259,    62,   258,     0,
      96,   207,   113,   258,     0,   170,    65,   258,     0,   259,
      62,   170,    65,   258,     0,   104,   151,   153,     0,   104,
     151,   361,     0,   104,   151,     1,     0,     0,   261,   260,
     152,     0,   103,   207,   109,     0,   103,     1,   109,     0,
       0,   263,   262,     0,   263,     1,     0,     0,    15,   170,
      61,   265,   295,   111,     0,     0,    15,    61,   266,   295,
     111,     0,    15,   170,     0,    15,   324,     0,    47,   319,
       0,     0,     0,     0,   276,   277,    61,   267,   282,   111,
     250,   268,   263,   269,   261,     0,   275,     0,     0,    62,
       0,     0,    62,     0,    38,     0,   272,     7,     0,   272,
       8,     0,   272,     9,     0,   272,    38,     0,   272,   251,
       0,   272,   170,     0,   272,   317,   170,     0,   272,   326,
     317,   170,     0,   272,   326,   170,     0,   272,   185,     0,
     272,   317,   185,     0,   272,   326,   317,   185,     0,   273,
       0,   272,   172,     0,   274,     0,   273,    61,     0,   273,
      65,     0,   274,    61,     0,   274,    65,     0,   272,   172,
      61,     0,   272,   172,    65,     0,   272,    61,     0,     0,
      65,   391,     0,    65,   391,   278,     0,   279,     0,   278,
      62,   391,   279,     0,   280,     0,   281,   391,   280,     0,
     319,     0,   305,     0,    39,   391,     0,     7,   391,     0,
     281,    39,   391,     0,   281,     7,   391,     0,     0,   284,
       0,   282,   283,   284,     0,   282,   283,     0,    39,    65,
       0,   285,     0,   284,   285,     0,   286,    63,     0,   286,
     111,     0,   163,    65,     0,   163,    97,     0,   163,    26,
       0,   163,    61,     0,    63,     0,   120,   285,     0,   140,
     285,     0,   140,   230,    63,     0,   393,     0,   230,   287,
       0,   233,   288,     0,   309,   241,   250,   257,     0,   156,
     241,   250,   257,     0,    65,   207,     0,     1,     0,   233,
     162,   241,   250,   257,     0,   162,   241,   250,   257,     0,
     130,     0,     0,   289,     0,   287,    62,   290,     0,     0,
     292,     0,   288,    62,   294,     0,   291,     0,   292,     0,
     293,     0,   294,     0,   303,   241,   250,   257,     0,     4,
      65,   207,   250,     0,   309,   241,   250,   257,     0,   156,
     241,   250,   257,     0,     3,    65,   207,   250,     0,    65,
     207,   250,     0,   303,   241,   250,   257,     0,     4,    65,
     207,   250,     0,   309,   241,   250,   257,     0,     3,    65,
     207,   250,     0,    65,   207,   250,     0,   296,   271,     0,
     271,     0,   297,     0,   296,    62,   297,     0,   170,     0,
     170,    67,   207,     0,   371,   327,     0,   371,     0,    95,
     229,   110,    96,   193,   113,     0,     0,   299,     9,     0,
       9,     0,   300,     9,     0,   251,     0,   300,   251,     0,
      95,   201,   110,     0,    95,   381,   110,     0,    49,     0,
      95,     1,   110,     0,   303,     0,   251,   303,     0,    83,
     300,   302,     0,    73,   300,   302,     0,    83,   302,     0,
      73,   302,     0,   325,   299,   302,     0,   304,     0,   304,
     301,   299,   396,     0,   304,    96,   193,   113,     0,   304,
      96,   113,     0,    95,   302,   110,     0,   317,   316,     0,
     316,     0,   316,     0,   326,   316,     0,   305,     0,   307,
       0,   326,   307,     0,   317,   316,     0,   309,     0,   251,
     309,     0,    83,   300,   308,     0,    73,   300,   308,     0,
      83,   308,     0,    73,   308,     0,   325,   299,   308,     0,
     217,     0,    83,   300,   308,     0,    73,   300,   308,     0,
      83,   310,     0,    73,   310,     0,   325,   299,   308,     0,
     311,     0,   217,   301,   299,   396,     0,    95,   310,   110,
       0,   217,    96,   193,   113,     0,   217,    96,   113,     0,
     313,     0,   326,   313,     0,   326,   209,     0,   317,   216,
       0,   317,   213,     0,   317,   212,     0,   317,   209,     0,
     317,   212,     0,   313,     0,   326,   313,     0,   236,    95,
     201,   110,     0,   236,    95,   214,   110,     0,   236,   228,
       0,     4,     0,     5,     0,   184,     0,   318,     0,   317,
     318,     0,   317,    50,   323,    56,     0,   317,     3,    56,
       0,   317,    59,    56,     0,     4,    56,     0,     5,    56,
       0,    60,    56,     0,   184,    56,     0,   320,     0,   326,
     320,     0,   321,   170,     0,   321,   184,     0,   321,   323,
       0,   321,    50,   323,     0,   322,     0,   321,   322,     0,
     321,   323,    56,     0,   321,    50,   323,    56,     0,     4,
      56,     0,     5,    56,     0,   184,    56,     0,    59,    56,
       0,     3,    56,     0,    60,    56,     0,   170,    77,   189,
     188,     0,   326,   316,     0,   307,     0,   326,   307,     0,
     317,    83,     0,   326,   317,    83,     0,    56,     0,    83,
     299,   327,     0,    83,   299,     0,    73,   299,   327,     0,
      73,   299,     0,   325,   299,     0,   325,   299,   327,     0,
     328,     0,    96,   193,   113,     0,   328,    96,   193,   113,
       0,   330,     0,   251,   330,     0,    83,   300,   329,     0,
      83,   329,     0,    83,   300,     0,    83,     0,    73,   300,
     329,     0,    73,   329,     0,    73,   300,     0,    73,     0,
     325,   299,     0,   325,   299,   329,     0,   331,     0,    95,
     329,   110,     0,   331,    95,   381,   110,   299,   396,     0,
     331,    49,   299,   396,     0,   331,    96,   193,   113,     0,
     331,    96,   113,     0,    95,   382,   110,   299,   396,     0,
     205,   299,   396,     0,   228,   299,   396,     0,    96,   193,
     113,     0,    96,   113,     0,   345,     0,   333,     0,   332,
     345,     0,   332,   333,     0,     1,    63,     0,     0,   335,
       0,   336,     0,   335,   336,     0,    34,   256,    63,     0,
       0,   403,    61,   338,   199,     0,   337,     0,     0,     0,
      16,   341,   195,   342,   343,     0,   339,     0,     0,   344,
     403,   346,     0,   339,     0,   403,   346,     0,   226,     0,
     193,    63,     0,     0,   340,    17,   347,   343,     0,   340,
       0,     0,     0,    18,   348,   195,   349,   343,     0,     0,
       0,    19,   350,   343,    18,   351,   194,    63,     0,     0,
       0,     0,     0,    20,   352,    95,   374,   353,   196,    63,
     354,   376,   110,   355,   343,     0,     0,     0,    21,   356,
      95,   197,   110,   357,   343,     0,     0,    22,   207,    65,
     358,   345,     0,     0,    22,   207,    13,   207,    65,   359,
     345,     0,     0,    23,    65,   360,   345,     0,    24,    63,
       0,    25,    63,     0,    26,    63,     0,    26,   193,    63,
       0,   121,   375,    95,   223,   110,    63,     0,   121,   375,
      95,   223,    65,   377,   110,    63,     0,   121,   375,    95,
     223,    65,   377,    65,   377,   110,    63,     0,   121,   375,
      95,   223,    56,   377,   110,    63,     0,   121,   375,    95,
     223,    65,   377,    65,   377,    65,   380,   110,    63,     0,
     121,   375,    95,   223,    56,   377,    65,   380,   110,    63,
       0,   121,   375,    95,   223,    65,   377,    56,   380,   110,
      63,     0,    27,    83,   193,    63,     0,    27,   170,    63,
       0,   373,   345,     0,   373,   111,     0,    63,     0,   364,
       0,   132,     0,   131,     0,   128,     0,     0,     0,    97,
     362,   153,   363,   367,     0,     0,     0,    97,   365,   339,
     366,   367,     0,   368,     0,   367,   368,     0,     0,     0,
       0,    98,   369,   372,   370,   339,     0,   234,     0,   300,
       0,    95,    13,   110,     0,    95,   390,   110,     0,     3,
      65,     0,    59,    65,     0,     4,    65,     0,     5,    65,
       0,   376,    63,     0,   226,     0,    61,   199,     0,     0,
       9,     0,     0,   193,     0,     1,     0,     0,   378,     0,
     379,     0,   378,    62,   379,     0,    12,    95,   193,   110,
       0,    96,   170,   113,    12,    95,   193,   110,     0,   223,
       0,   380,    62,   223,     0,     0,   382,     0,   229,     0,
     386,     0,   387,    13,     0,   386,    13,     0,   229,    13,
       0,    13,     0,   386,    65,     0,   229,    65,     0,     0,
      67,   384,   385,     0,   102,     0,   258,     0,   388,     0,
     390,   383,     0,   387,   389,     0,   387,   392,     0,   387,
     392,    67,   258,     0,   386,    62,     0,   229,    62,     0,
     231,   227,     0,   234,   227,     0,   236,   227,     0,   231,
     330,     0,   231,     0,   233,   309,     0,   390,     0,   390,
     383,     0,   388,     0,   229,     0,     0,     0,   309,     0,
       3,   394,     3,   395,    63,     0,    77,   189,   188,     0,
       0,    95,   201,   110,     0,     0,     0,    64,    95,   398,
     110,     0,    64,    49,     0,   229,     0,     1,     0,   397,
       0,   398,    62,   397,     0,     0,    83,   299,   399,     0,
      73,   299,   399,     0,   325,   299,   399,     0,    43,     0,
       0,   400,    83,   401,     0,   400,    84,   401,     0,   400,
      85,   401,     0,   400,    81,   401,     0,   400,    82,   401,
       0,   400,    73,   401,     0,   400,    71,   401,     0,   400,
      72,   401,     0,   400,    91,   401,     0,   400,    62,   401,
       0,   400,    76,   401,     0,   400,    77,   401,     0,   400,
      78,   401,     0,   400,    75,   401,     0,   400,    66,   401,
       0,   400,    67,   401,     0,   400,    79,   401,     0,   400,
      80,   401,     0,   400,    89,   401,     0,   400,    90,   401,
       0,   400,    70,   401,     0,   400,    69,   401,     0,   400,
     112,   401,     0,   400,    68,    65,   401,     0,   400,    74,
     401,     0,   400,    93,   401,     0,   400,    86,   401,     0,
     400,    49,   401,     0,   400,    96,   113,   401,     0,   400,
      41,   401,     0,   400,    40,   401,     0,   400,    41,    96,
     113,   401,     0,   400,    40,    96,   113,   401,     0,   400,
     371,   399,   401,     0,   400,     1,   401,     0,     0
};

#endif

#if YYDEBUG
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
       0,   454,   457,   465,   465,   469,   473,   475,   478,   483,
     487,   493,   497,   497,   505,   508,   511,   511,   515,   517,
     520,   522,   524,   526,   526,   530,   530,   534,   535,   537,
     538,   542,   542,   554,   557,   559,   563,   566,   568,   572,
     572,   587,   594,   603,   605,   606,   608,   612,   615,   621,
     621,   628,   634,   636,   639,   642,   646,   649,   653,   656,
     660,   665,   675,   677,   679,   681,   683,   697,   700,   704,
     707,   709,   711,   714,   717,   721,   723,   725,   727,   737,
     739,   741,   743,   745,   746,   753,   754,   755,   757,   758,
     761,   763,   766,   768,   769,   772,   774,   780,   780,   791,
     794,   796,   800,   800,   805,   809,   809,   813,   817,   817,
     821,   825,   825,   829,   835,   840,   843,   846,   849,   857,
     860,   863,   865,   867,   869,   875,   884,   887,   889,   891,
     894,   896,   901,   908,   911,   913,   917,   929,   936,   942,
     947,   958,   961,   968,   976,   978,   981,   983,   986,   988,
     991,   995,   997,   998,   999,  1000,  1003,  1005,  1006,  1009,
    1011,  1012,  1015,  1015,  1020,  1020,  1024,  1024,  1027,  1027,
    1030,  1030,  1034,  1034,  1039,  1039,  1042,  1042,  1047,  1051,
    1059,  1063,  1066,  1069,  1071,  1076,  1082,  1092,  1094,  1102,
    1105,  1108,  1111,  1115,  1118,  1124,  1130,  1131,  1143,  1146,
    1148,  1150,  1152,  1156,  1159,  1162,  1167,  1171,  1176,  1180,
    1183,  1184,  1188,  1188,  1211,  1214,  1216,  1217,  1218,  1221,
    1225,  1228,  1230,  1234,  1237,  1240,  1244,  1247,  1249,  1251,
    1253,  1256,  1258,  1260,  1263,  1265,  1271,  1274,  1277,  1280,
    1283,  1288,  1291,  1294,  1298,  1300,  1304,  1308,  1310,  1314,
    1317,  1322,  1325,  1327,  1337,  1351,  1356,  1362,  1364,  1366,
    1379,  1382,  1384,  1386,  1388,  1390,  1392,  1394,  1396,  1398,
    1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,
    1420,  1422,  1426,  1428,  1430,  1434,  1437,  1439,  1441,  1443,
    1445,  1447,  1449,  1451,  1453,  1455,  1457,  1459,  1461,  1463,
    1465,  1467,  1469,  1471,  1473,  1475,  1479,  1481,  1483,  1487,
    1490,  1492,  1493,  1494,  1495,  1496,  1499,  1512,  1515,  1519,
    1522,  1524,  1529,  1531,  1532,  1535,  1537,  1545,  1547,  1549,
    1551,  1555,  1558,  1562,  1566,  1567,  1568,  1572,  1580,  1581,
    1582,  1592,  1598,  1600,  1603,  1605,  1605,  1621,  1623,  1625,
    1627,  1629,  1632,  1634,  1636,  1639,  1641,  1652,  1653,  1657,
    1661,  1665,  1669,  1671,  1675,  1677,  1679,  1687,  1689,  1691,
    1693,  1697,  1699,  1701,  1703,  1708,  1710,  1712,  1714,  1717,
    1719,  1721,  1765,  1768,  1772,  1775,  1779,  1782,  1787,  1789,
    1793,  1801,  1804,  1811,  1817,  1821,  1823,  1828,  1830,  1837,
    1839,  1843,  1847,  1853,  1857,  1860,  1864,  1867,  1877,  1880,
    1884,  1888,  1891,  1894,  1897,  1900,  1906,  1912,  1914,  1935,
    1938,  1943,  1948,  1956,  1966,  1970,  1973,  1976,  1981,  1984,
    1986,  1988,  1996,  1999,  2001,  2003,  2006,  2009,  2024,  2043,
    2046,  2048,  2051,  2053,  2057,  2059,  2063,  2065,  2069,  2072,
    2076,  2076,  2082,  2095,  2095,  2103,  2109,  2114,  2119,  2119,
    2128,  2135,  2138,  2142,  2145,  2149,  2154,  2157,  2161,  2164,
    2166,  2168,  2170,  2177,  2179,  2180,  2181,  2185,  2188,  2192,
    2195,  2202,  2204,  2207,  2210,  2213,  2219,  2222,  2225,  2227,
    2229,  2233,  2239,  2244,  2250,  2252,  2257,  2260,  2264,  2266,
    2268,  2272,  2272,  2282,  2282,  2291,  2294,  2297,  2303,  2303,
    2303,  2303,  2349,  2357,  2359,  2362,  2364,  2369,  2371,  2373,
    2375,  2377,  2379,  2383,  2389,  2394,  2399,  2406,  2412,  2417,
    2424,  2431,  2437,  2444,  2452,  2459,  2470,  2481,  2489,  2497,
    2506,  2509,  2512,  2516,  2518,  2522,  2525,  2529,  2533,  2537,
    2539,  2543,  2554,  2568,  2569,  2570,  2571,  2574,  2583,  2590,
    2598,  2600,  2605,  2607,  2609,  2611,  2613,  2615,  2618,  2628,
    2633,  2637,  2662,  2668,  2670,  2672,  2674,  2685,  2690,  2692,
    2698,  2701,  2708,  2718,  2721,  2728,  2738,  2740,  2743,  2745,
    2748,  2752,  2757,  2761,  2764,  2767,  2772,  2775,  2779,  2782,
    2784,  2788,  2790,  2797,  2799,  2802,  2805,  2810,  2814,  2819,
    2829,  2832,  2836,  2840,  2843,  2846,  2855,  2858,  2860,  2862,
    2868,  2870,  2879,  2882,  2884,  2886,  2888,  2892,  2895,  2898,
    2900,  2902,  2904,  2908,  2911,  2922,  2932,  2934,  2935,  2939,
    2947,  2949,  2957,  2960,  2962,  2964,  2966,  2970,  2973,  2976,
    2978,  2980,  2982,  2986,  2989,  2992,  2994,  2996,  2998,  3000,
    3002,  3006,  3013,  3017,  3022,  3026,  3031,  3033,  3037,  3040,
    3042,  3046,  3048,  3049,  3052,  3054,  3056,  3060,  3063,  3070,
    3081,  3087,  3093,  3097,  3099,  3103,  3117,  3119,  3121,  3125,
    3133,  3146,  3149,  3156,  3169,  3175,  3177,  3178,  3179,  3187,
    3192,  3201,  3202,  3206,  3209,  3215,  3221,  3224,  3226,  3228,
    3230,  3234,  3238,  3242,  3245,  3249,  3251,  3260,  3263,  3265,
    3267,  3269,  3271,  3273,  3275,  3277,  3281,  3285,  3289,  3293,
    3295,  3297,  3299,  3301,  3303,  3305,  3307,  3309,  3317,  3319,
    3320,  3321,  3324,  3330,  3332,  3337,  3339,  3342,  3353,  3353,
    3361,  3366,  3366,  3366,  3377,  3379,  3379,  3387,  3389,  3393,
    3397,  3399,  3399,  3407,  3410,  3410,  3410,  3420,  3420,  3420,
    3430,  3430,  3430,  3430,  3430,  3441,  3441,  3441,  3448,  3448,
    3452,  3452,  3456,  3456,  3460,  3462,  3464,  3466,  3468,  3473,
    3476,  3479,  3482,  3485,  3488,  3491,  3497,  3499,  3501,  3505,
    3508,  3510,  3512,  3515,  3519,  3519,  3519,  3528,  3528,  3528,
    3537,  3539,  3540,  3551,  3551,  3551,  3560,  3562,  3565,  3582,
    3590,  3593,  3595,  3597,  3601,  3604,  3605,  3613,  3616,  3619,
    3622,  3623,  3629,  3632,  3635,  3637,  3641,  3644,  3648,  3651,
    3661,  3666,  3667,  3674,  3677,  3680,  3682,  3685,  3687,  3697,
    3711,  3711,  3718,  3720,  3724,  3728,  3731,  3734,  3736,  3740,
    3742,  3749,  3755,  3758,  3762,  3765,  3768,  3773,  3777,  3782,
    3784,  3787,  3792,  3798,  3814,  3822,  3825,  3828,  3831,  3834,
    3837,  3839,  3843,  3849,  3853,  3856,  3860,  3863,  3865,  3867,
    3873,  3886,  3894,  3897,  3899,  3901,  3903,  3905,  3907,  3909,
    3911,  3913,  3915,  3917,  3919,  3921,  3923,  3925,  3927,  3929,
    3931,  3933,  3935,  3937,  3939,  3941,  3943,  3945,  3947,  3949,
    3951,  3953,  3955,  3957,  3959,  3961,  3963,  3970
};
#endif


#if (YYDEBUG) || defined YYERROR_VERBOSE

/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] =
{
  "$", "error", "$undefined.", "IDENTIFIER", "TYPENAME", "SELFNAME", 
  "PFUNCNAME", "SCSPEC", "TYPESPEC", "CV_QUALIFIER", "CONSTANT", 
  "VAR_FUNC_NAME", "STRING", "ELLIPSIS", "SIZEOF", "ENUM", "IF", "ELSE", 
  "WHILE", "DO", "FOR", "SWITCH", "CASE", "DEFAULT", "BREAK", "CONTINUE", 
  "RETURN_KEYWORD", "GOTO", "ASM_KEYWORD", "TYPEOF", "ALIGNOF", "SIGOF", 
  "ATTRIBUTE", "EXTENSION", "LABEL", "REALPART", "IMAGPART", "VA_ARG", 
  "AGGR", "VISSPEC", "DELETE", "NEW", "THIS", "OPERATOR", "CXX_TRUE", 
  "CXX_FALSE", "NAMESPACE", "TYPENAME_KEYWORD", "USING", "LEFT_RIGHT", 
  "TEMPLATE", "TYPEID", "DYNAMIC_CAST", "STATIC_CAST", "REINTERPRET_CAST", 
  "CONST_CAST", "SCOPE", "EXPORT", "EMPTY", "PTYPENAME", "NSNAME", "'{'", 
  "','", "';'", "THROW", "':'", "ASSIGN", "'='", "'?'", "OROR", "ANDAND", 
  "'|'", "'^'", "'&'", "MIN_MAX", "EQCOMPARE", "ARITHCOMPARE", "'<'", 
  "'>'", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'", 
  "POINTSAT_STAR", "DOT_STAR", "UNARY", "PLUSPLUS", "MINUSMINUS", "'~'", 
  "HYPERUNARY", "POINTSAT", "'.'", "'('", "'['", "TRY", "CATCH", 
  "EXTERN_LANG_STRING", "ALL", "PRE_PARSED_CLASS_DECL", "DEFARG", 
  "DEFARG_MARKER", "PRE_PARSED_FUNCTION_DECL", "TYPENAME_DEFN", 
  "IDENTIFIER_DEFN", "PTYPENAME_DEFN", "END_OF_LINE", 
  "END_OF_SAVED_INPUT", "')'", "'}'", "'!'", "']'", "program", "extdefs", 
  "@1", "extdefs_opt", ".hush_warning", ".warning_ok", "extension", 
  "asm_keyword", "lang_extdef", "@2", "extdef", "@3", "@4", "@5", 
  "namespace_alias", "@6", "using_decl", "namespace_using_decl", 
  "using_directive", "@7", "namespace_qualifier", "any_id", 
  "extern_lang_string", "template_parm_header", "@8", 
  "template_spec_header", "template_header", "template_parm_list", 
  "maybe_identifier", "template_type_parm", "template_template_parm", 
  "template_parm", "template_def", "template_extdef", "template_datadef", 
  "datadef", "ctor_initializer_opt", "maybe_return_init", 
  "eat_saved_input", "function_body", "@9", "fndef", 
  "constructor_declarator", "@10", "@11", "@12", "@13", "fn.def1", 
  "component_constructor_declarator", "fn.def2", "return_id", 
  "return_init", "base_init", ".begin_function_body", "member_init_list", 
  "member_init", "identifier", "notype_identifier", "identifier_defn", 
  "explicit_instantiation", "@14", "@15", "@16", "@17", "@18", "@19", 
  "@20", "@21", "begin_explicit_instantiation", 
  "end_explicit_instantiation", "template_type", "apparent_template_type", 
  "self_template_type", ".finish_template_type", "template_close_bracket", 
  "template_arg_list_opt", "template_arg_list", "template_arg", "unop", 
  "expr", "paren_expr_or_null", "paren_cond_or_null", "xcond", 
  "condition", "@22", "compstmtend", "nontrivial_exprlist", 
  "nonnull_exprlist", "unary_expr", "new_placement", "new_initializer", 
  "regcast_or_absdcl", "cast_expr", "expr_no_commas", 
  "expr_no_comma_rangle", "notype_unqualified_id", "do_id", "template_id", 
  "object_template_id", "unqualified_id", "expr_or_declarator_intern", 
  "expr_or_declarator", "notype_template_declarator", 
  "direct_notype_declarator", "primary", "@23", "new", "delete", 
  "boolean.literal", "string", "nodecls", "object", "decl", "declarator", 
  "fcast_or_absdcl", "type_id", "typed_declspecs", "typed_declspecs1", 
  "reserved_declspecs", "declmods", "typed_typespecs", 
  "reserved_typespecquals", "typespec", "typespecqual_reserved", 
  "initdecls", "notype_initdecls", "nomods_initdecls", "maybeasm", 
  "initdcl", "@24", "initdcl0_innards", "@25", "initdcl0", 
  "notype_initdcl0", "nomods_initdcl0", "@26", "maybe_attribute", 
  "attributes", "attribute", "attribute_list", "attrib", "any_word", 
  "identifiers_or_typenames", "maybe_init", "init", "initlist", 
  "pending_inline", "pending_inlines", "defarg_again", "pending_defargs", 
  "structsp", "@27", "@28", "@29", "@30", "@31", "maybecomma", 
  "maybecomma_warn", "aggr", "class_head", "class_head_apparent_template", 
  "class_head_decl", "class_head_defn", "maybe_base_class_list", 
  "base_class_list", "base_class", "base_class.1", 
  "base_class_access_list", "opt.component_decl_list", "access_specifier", 
  "component_decl_list", "component_decl", "component_decl_1", 
  "components", "notype_components", "component_declarator0", 
  "component_declarator", "after_type_component_declarator0", 
  "notype_component_declarator0", "after_type_component_declarator", 
  "notype_component_declarator", "enumlist_opt", "enumlist", "enumerator", 
  "new_type_id", "cv_qualifiers", "nonempty_cv_qualifiers", 
  "maybe_parmlist", "after_type_declarator_intern", 
  "after_type_declarator", "direct_after_type_declarator", 
  "nonnested_type", "complete_type_name", "nested_type", 
  "notype_declarator_intern", "notype_declarator", 
  "complex_notype_declarator", "complex_direct_notype_declarator", 
  "qualified_id", "notype_qualified_id", "overqualified_id", 
  "functional_cast", "type_name", "nested_name_specifier", 
  "nested_name_specifier_1", "typename_sub", "typename_sub0", 
  "typename_sub1", "typename_sub2", "explicit_template_type", 
  "complex_type_name", "ptr_to_mem", "global_scope", "new_declarator", 
  "direct_new_declarator", "absdcl_intern", "absdcl", 
  "direct_abstract_declarator", "stmts", "errstmt", "maybe_label_decls", 
  "label_decls", "label_decl", "compstmt_or_stmtexpr", "@32", "compstmt", 
  "simple_if", "@33", "@34", "implicitly_scoped_stmt", "@35", "stmt", 
  "simple_stmt", "@36", "@37", "@38", "@39", "@40", "@41", "@42", "@43", 
  "@44", "@45", "@46", "@47", "@48", "@49", "function_try_block", "@50", 
  "@51", "try_block", "@52", "@53", "handler_seq", "handler", "@54", 
  "@55", "type_specifier_seq", "handler_args", "label_colon", 
  "for.init.statement", "maybe_cv_qualifier", "xexpr", "asm_operands", 
  "nonnull_asm_operands", "asm_operand", "asm_clobbers", "parmlist", 
  "complex_parmlist", "defarg", "@56", "defarg1", "parms", "parms_comma", 
  "named_parm", "full_parm", "parm", "see_typename", "bad_parm", 
  "bad_decl", "template_arg_list_ignore", "arg_list_ignore", 
  "exception_specification_opt", "ansi_raise_identifier", 
  "ansi_raise_identifiers", "conversion_declarator", "operator", 
  "unoperator", "operator_name", "save_lineno", 0
};
#endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
       0,   114,   114,   116,   115,   115,   117,   117,   118,   119,
     120,   121,   123,   122,   124,   124,   125,   124,   124,   124,
     124,   124,   124,   126,   124,   127,   124,   124,   124,   124,
     124,   129,   128,   130,   130,   130,   131,   131,   131,   133,
     132,   134,   134,   135,   135,   135,   135,   136,   136,   138,
     137,   139,   140,   140,   141,   141,   142,   142,   143,   143,
     144,   145,   145,   145,   145,   145,   145,   146,   146,   147,
     147,   147,   147,   147,   147,   148,   148,   148,   148,   149,
     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     150,   150,   151,   151,   151,   152,   152,   154,   153,   155,
     155,   155,   157,   156,   156,   158,   156,   156,   159,   156,
     156,   160,   156,   156,   161,   161,   161,   161,   161,   162,
     162,   162,   162,   162,   162,   163,   163,   163,   163,   163,
     163,   163,   164,   165,   165,   165,   166,   167,   168,   168,
     168,   168,   169,   169,   169,   169,   169,   169,   169,   169,
     169,   170,   170,   170,   170,   170,   171,   171,   171,   172,
     172,   172,   174,   173,   175,   173,   176,   173,   177,   173,
     178,   173,   179,   173,   180,   173,   181,   173,   182,   183,
     184,   184,   184,   185,   185,   186,   187,   188,   188,   189,
     189,   190,   190,   191,   191,   191,   191,   191,   192,   192,
     192,   192,   192,   193,   193,   194,   194,   195,   195,   196,
     196,   196,   198,   197,   197,   199,   199,   199,   199,   200,
     200,   200,   200,   201,   201,   202,   202,   202,   202,   202,
     202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
     202,   202,   202,   202,   202,   202,   202,   202,   202,   203,
     203,   204,   204,   204,   204,   205,   205,   206,   206,   206,
     207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
     207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
     207,   207,   207,   207,   207,   208,   208,   208,   208,   208,
     208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
     208,   208,   208,   208,   208,   208,   208,   208,   208,   209,
     209,   209,   209,   209,   209,   209,   210,   211,   211,   212,
     212,   212,   213,   213,   213,   214,   214,   215,   215,   215,
     215,   216,   216,   217,   217,   217,   217,   218,   218,   218,
     218,   218,   218,   218,   218,   219,   218,   218,   218,   218,
     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
     218,   218,   220,   220,   221,   221,   222,   222,   223,   223,
     224,   225,   225,   226,   226,   226,   226,   226,   226,   227,
     227,   228,   228,   229,   229,   229,   229,   229,   230,   230,
     231,   231,   231,   231,   231,   231,   232,   232,   232,   233,
     233,   233,   233,   233,   234,   234,   234,   234,   235,   235,
     235,   235,   236,   236,   236,   236,   236,   236,   236,   237,
     237,   237,   238,   238,   239,   239,   240,   240,   241,   241,
     243,   242,   242,   245,   244,   244,   246,   247,   249,   248,
     248,   250,   250,   251,   251,   252,   253,   253,   254,   254,
     254,   254,   254,   255,   255,   255,   255,   256,   256,   257,
     257,   258,   258,   258,   258,   258,   259,   259,   259,   259,
     259,   260,   260,   260,   261,   261,   262,   262,   263,   263,
     263,   265,   264,   266,   264,   264,   264,   264,   267,   268,
     269,   264,   264,   270,   270,   271,   271,   272,   272,   272,
     272,   272,   272,   273,   273,   273,   273,   274,   274,   274,
     275,   275,   275,   276,   276,   276,   276,   276,   276,   276,
     277,   277,   277,   278,   278,   279,   279,   280,   280,   281,
     281,   281,   281,   282,   282,   282,   282,   283,   284,   284,
     285,   285,   285,   285,   285,   285,   285,   285,   285,   285,
     285,   286,   286,   286,   286,   286,   286,   286,   286,   286,
     287,   287,   287,   288,   288,   288,   289,   289,   290,   290,
     291,   291,   292,   292,   292,   292,   293,   293,   294,   294,
     294,   295,   295,   296,   296,   297,   297,   298,   298,   298,
     299,   299,   300,   300,   300,   300,   301,   301,   301,   301,
     302,   302,   303,   303,   303,   303,   303,   303,   304,   304,
     304,   304,   304,   304,   305,   305,   306,   306,   306,   307,
     308,   308,   309,   309,   309,   309,   309,   309,   310,   310,
     310,   310,   310,   310,   311,   311,   311,   311,   311,   311,
     311,   311,   312,   312,   313,   313,   314,   314,   315,   315,
     315,   316,   316,   316,   317,   317,   317,   317,   317,   318,
     318,   318,   318,   319,   319,   320,   320,   320,   320,   321,
     321,   321,   321,   322,   322,   322,   322,   322,   322,   323,
     324,   324,   324,   325,   325,   326,   327,   327,   327,   327,
     327,   327,   327,   328,   328,   329,   329,   330,   330,   330,
     330,   330,   330,   330,   330,   330,   330,   330,   331,   331,
     331,   331,   331,   331,   331,   331,   331,   331,   332,   332,
     332,   332,   333,   334,   334,   335,   335,   336,   338,   337,
     339,   341,   342,   340,   343,   344,   343,   345,   345,   346,
     346,   347,   346,   346,   348,   349,   346,   350,   351,   346,
     352,   353,   354,   355,   346,   356,   357,   346,   358,   346,
     359,   346,   360,   346,   346,   346,   346,   346,   346,   346,
     346,   346,   346,   346,   346,   346,   346,   346,   346,   346,
     346,   346,   346,   346,   362,   363,   361,   365,   366,   364,
     367,   367,   367,   369,   370,   368,   371,   371,   372,   372,
     373,   373,   373,   373,   374,   374,   374,   375,   375,   376,
     376,   376,   377,   377,   378,   378,   379,   379,   380,   380,
     381,   381,   381,   382,   382,   382,   382,   382,   382,   382,
     384,   383,   385,   385,   386,   386,   386,   386,   386,   387,
     387,   388,   388,   388,   388,   388,   388,   389,   389,   390,
     390,   391,   392,   392,   393,   394,   394,   395,   395,   396,
     396,   396,   397,   397,   398,   398,   399,   399,   399,   399,
     400,   401,   402,   402,   402,   402,   402,   402,   402,   402,
     402,   402,   402,   402,   402,   402,   402,   402,   402,   402,
     402,   402,   402,   402,   402,   402,   402,   402,   402,   402,
     402,   402,   402,   402,   402,   402,   402,   403
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
       0,     0,     1,     0,     2,     2,     1,     0,     0,     0,
       1,     1,     0,     2,     2,     1,     0,     3,     1,     5,
       4,     5,     4,     0,     6,     0,     5,     1,     2,     1,
       2,     0,     6,     2,     3,     3,     3,     3,     4,     0,
       5,     2,     3,     1,     1,     2,     2,     1,     2,     0,
       5,     3,     1,     1,     1,     3,     1,     0,     2,     2,
       3,     1,     3,     1,     3,     1,     3,     2,     2,     2,
       1,     1,     5,     4,     2,     2,     3,     3,     2,     2,
       3,     3,     2,     2,     2,     2,     2,     2,     1,     1,
       1,     1,     0,     1,     2,     0,     1,     0,     6,     3,
       3,     3,     0,     8,     5,     0,     9,     6,     0,     8,
       5,     0,     9,     6,     2,     2,     1,     2,     1,     6,
       8,     4,     6,     6,     4,     2,     1,     2,     2,     1,
       2,     1,     2,     2,     4,     2,     2,     0,     0,     1,
       3,     2,     3,     1,     4,     2,     4,     2,     4,     2,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     0,     6,     0,     6,     0,     5,     0,     5,
       0,     7,     0,     7,     0,     6,     0,     6,     0,     0,
       5,     5,     1,     1,     5,     5,     0,     1,     1,     0,
       1,     1,     3,     1,     1,     2,     1,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     3,     1,     3,     0,
       1,     1,     0,     7,     1,     1,     3,     4,     3,     3,
       3,     3,     3,     1,     1,     1,     2,     2,     2,     2,
       2,     2,     2,     4,     2,     4,     2,     3,     3,     4,
       4,     5,     5,     6,     2,     4,     5,     2,     2,     3,
       3,     3,     1,     3,     2,     3,     4,     1,     2,     5,
       1,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       5,     3,     3,     1,     2,     1,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     5,     3,     3,     1,     2,     3,
       3,     1,     1,     1,     1,     1,     0,     5,     5,     5,
       5,     5,     1,     1,     1,     1,     2,     1,     2,     2,
       3,     4,     4,     1,     1,     1,     3,     1,     1,     1,
       1,     1,     3,     3,     3,     0,     4,     4,     2,     4,
       2,     6,     4,     2,     2,     1,     4,     1,     7,     7,
       7,     7,     4,     4,     2,     2,     2,     1,     4,     2,
       2,     5,     3,     2,     2,     5,     3,     5,     3,     4,
       6,     2,     1,     2,     1,     2,     1,     1,     1,     2,
       0,     2,     2,     3,     3,     3,     2,     2,     2,     1,
       1,     1,     2,     2,     2,     2,     1,     1,     1,     1,
       2,     2,     3,     3,     3,     4,     1,     2,     2,     1,
       1,     2,     2,     2,     1,     2,     2,     3,     1,     2,
       2,     1,     1,     1,     1,     4,     4,     4,     4,     1,
       1,     1,     1,     3,     1,     3,     1,     3,     0,     4,
       0,     6,     3,     0,     4,     1,     3,     3,     0,     4,
       3,     0,     1,     1,     2,     6,     1,     3,     0,     1,
       4,     6,     4,     1,     1,     1,     1,     1,     3,     0,
       2,     1,     2,     3,     4,     1,     1,     3,     4,     3,
       5,     3,     3,     3,     0,     3,     3,     3,     0,     2,
       2,     0,     6,     0,     5,     2,     2,     2,     0,     0,
       0,    11,     1,     0,     1,     0,     1,     1,     2,     2,
       2,     2,     2,     2,     3,     4,     3,     2,     3,     4,
       1,     2,     1,     2,     2,     2,     2,     3,     3,     2,
       0,     2,     3,     1,     4,     1,     3,     1,     1,     2,
       2,     3,     3,     0,     1,     3,     2,     2,     1,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     2,     3,
       1,     2,     2,     4,     4,     2,     1,     5,     4,     1,
       0,     1,     3,     0,     1,     3,     1,     1,     1,     1,
       4,     4,     4,     4,     4,     3,     4,     4,     4,     4,
       3,     2,     1,     1,     3,     1,     3,     2,     1,     6,
       0,     2,     1,     2,     1,     2,     3,     3,     1,     3,
       1,     2,     3,     3,     2,     2,     3,     1,     4,     4,
       3,     3,     2,     1,     1,     2,     1,     1,     2,     2,
       1,     2,     3,     3,     2,     2,     3,     1,     3,     3,
       2,     2,     3,     1,     4,     3,     4,     3,     1,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     4,     4,
       2,     1,     1,     1,     1,     2,     4,     3,     3,     2,
       2,     2,     2,     1,     2,     2,     2,     2,     3,     1,
       2,     3,     4,     2,     2,     2,     2,     2,     2,     4,
       2,     1,     2,     2,     3,     1,     3,     2,     3,     2,
       2,     3,     1,     3,     4,     1,     2,     3,     2,     2,
       1,     3,     2,     2,     1,     2,     3,     1,     3,     6,
       4,     4,     3,     5,     3,     3,     3,     2,     1,     1,
       2,     2,     2,     0,     1,     1,     2,     3,     0,     4,
       1,     0,     0,     5,     1,     0,     3,     1,     2,     1,
       2,     0,     4,     1,     0,     0,     5,     0,     0,     7,
       0,     0,     0,     0,    12,     0,     0,     7,     0,     5,
       0,     7,     0,     4,     2,     2,     2,     3,     6,     8,
      10,     8,    12,    10,    10,     4,     3,     2,     2,     1,
       1,     1,     1,     1,     0,     0,     5,     0,     0,     5,
       1,     2,     0,     0,     0,     5,     1,     1,     3,     3,
       2,     2,     2,     2,     2,     1,     2,     0,     1,     0,
       1,     1,     0,     1,     1,     3,     4,     7,     1,     3,
       0,     1,     1,     1,     2,     2,     2,     1,     2,     2,
       0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
       2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
       1,     0,     0,     1,     5,     3,     0,     3,     0,     0,
       4,     2,     1,     1,     1,     3,     0,     3,     3,     3,
       1,     0,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     4,     3,     3,     3,     3,
       4,     3,     3,     5,     5,     4,     3,     0
};

/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
   doesn't specify something else to do.  Zero means the default is an
   error. */
static const short yydefact[] =
{
       3,    12,    12,     5,     0,     4,     0,   313,   671,   672,
       0,   420,   433,   612,     0,    11,     0,     0,     0,    10,
     517,   890,     0,     0,     0,   178,   705,    16,   314,   315,
      88,     0,     0,   871,     0,    47,     0,     0,    13,    27,
       0,    29,     8,    52,    53,     0,    18,    15,    95,   118,
      92,     0,   673,   182,   334,   311,   335,   647,     0,   409,
       0,   408,   424,     0,   446,   614,   463,   432,     0,   530,
     532,   512,   540,   419,   636,   434,   637,   116,   333,   658,
     634,     0,   674,   610,     0,    89,     0,   312,    85,    87,
      86,   189,     0,   679,   189,   680,   189,   316,   178,   151,
     152,   153,   154,   155,   503,   505,     0,   701,     0,   506,
       0,     0,     0,     0,   152,   153,   154,   155,    25,     0,
       0,     0,     0,     0,     0,     0,   507,   683,     0,   689,
       0,     0,     0,    39,     0,     0,    33,     0,     0,    49,
       0,     0,   189,   681,     0,   313,   614,     0,   645,   640,
       0,     0,     0,   644,     0,     0,     0,     0,   334,     0,
     325,     0,     0,     0,   333,   610,    30,     0,    28,     3,
      48,     0,    68,   420,     0,     0,     8,    71,    67,    70,
      95,     0,     0,     0,   432,    96,    14,     0,   461,     0,
       0,   479,    93,    83,   682,   618,     0,     0,   610,    84,
       0,     0,     0,   114,     0,   442,   399,   627,   400,   633,
       0,   610,   422,   421,    82,   117,   410,     0,   444,   423,
     115,   416,   439,   440,   411,   426,   428,   431,   441,     0,
      79,   464,   518,   519,   520,   521,   539,   160,   159,   161,
     523,   531,   183,   527,   522,     0,     0,   533,   534,   535,
     536,   871,     0,   613,   425,   615,     0,   458,   313,   672,
       0,   314,   703,   182,   664,   665,   661,   639,   675,     0,
     313,   315,   660,   638,   659,   635,     0,   891,   891,   891,
     891,   891,   891,   891,     0,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,     0,   891,   816,
     424,   817,   886,   316,   612,   338,   341,   388,     0,     0,
       0,     0,     0,   384,   382,   355,   386,   387,     0,     0,
       0,     0,     0,   314,   307,     0,     0,   199,   198,     0,
     200,   201,     0,     0,   202,     0,     0,   190,   191,     0,
     257,     0,   285,   196,   337,   225,     0,     0,   339,   340,
       0,   193,   406,   424,   407,   666,   367,   357,     0,     0,
     878,     0,     0,   189,     0,   515,   501,     0,     0,     0,
     702,   700,   283,     0,   203,   260,   204,     0,     0,     0,
       0,     0,   468,     3,    23,    31,   697,   693,   694,   696,
     698,   695,   151,   152,   153,     0,   154,   155,   685,   686,
     690,   687,   684,     0,   313,   323,   324,   322,   663,   662,
      35,    34,    51,     0,   168,     0,     0,   424,   166,    17,
       0,     0,   189,   641,   615,   643,     0,   642,   152,   153,
     309,   310,   329,   614,     0,   651,   328,     0,   650,     0,
     336,   314,   315,     0,     0,     0,   327,   326,   655,     0,
       0,    12,     0,   178,     9,     9,    74,     0,    69,     0,
       0,    75,    78,     0,   460,   462,   132,   101,   804,    99,
     390,   100,   135,     0,     0,   133,    94,     0,   847,   224,
       0,   223,   842,   865,     0,   406,   424,   407,     0,   841,
     843,   872,   854,     0,     0,   657,     0,     0,   879,   614,
       0,   625,   620,     0,   624,     0,     0,     0,     0,     0,
     610,   461,     0,    81,     0,   610,   632,     0,   413,   414,
       0,    80,   461,   418,   417,   412,   429,   430,   448,   447,
     189,   537,   538,   151,   154,   524,   528,   526,     0,   541,
     508,   427,   461,   677,   610,   102,     0,     0,     0,     0,
     678,   610,   108,   611,     0,   646,   672,   704,   182,   926,
       0,   922,     0,   921,   919,   901,   906,   907,   891,   913,
     912,   898,   899,   897,   916,   905,   902,   903,   904,   908,
     909,   895,   896,   892,   893,   894,   918,   910,   911,   900,
     917,   891,   914,   426,   610,   610,     0,   610,     0,   891,
     189,     0,     0,   232,     0,   234,   247,   248,     0,     0,
       0,     0,     0,     0,   308,   231,   228,   227,   229,     0,
       0,     0,     0,     0,   337,     0,   927,     0,   226,   187,
     188,   331,     0,   230,     0,     0,   258,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
     350,   353,   354,   392,   391,     0,     0,     0,     0,     0,
     236,   608,     0,   244,   389,   381,     0,     0,   871,   370,
     373,   374,     0,     0,   401,   724,   720,     0,     0,   610,
     610,   610,   403,   727,     0,   670,   405,     0,     0,   404,
     369,     0,     0,   364,   383,   195,   365,   385,   667,     0,
     366,     0,     0,   186,   186,     0,   176,     0,   424,   174,
     516,   605,   602,     0,   515,   603,   515,     0,   284,   435,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   436,   437,   438,   474,   475,   476,
     473,     0,   466,   469,     0,     3,     0,   688,   189,   691,
       0,    43,    44,     0,    57,     0,     0,     0,    61,    65,
      54,   870,   424,    57,   869,    63,   179,   164,   162,   179,
     186,   332,     0,   649,   648,   336,     0,   652,     0,    20,
      22,    95,     9,     9,    77,    76,     0,   137,     0,   927,
      91,    90,   485,     0,   481,   480,     0,   619,   616,   846,
     860,   849,   724,   720,     0,   861,   610,   864,   866,     0,
       0,   862,     0,   863,   617,   845,   859,   848,   844,   873,
     856,   867,   857,   850,   855,   656,     0,   670,     0,   654,
     621,   615,   623,   622,   614,     0,     0,     0,     0,     0,
       0,   610,   631,     0,   456,   455,   443,   630,     0,   879,
       0,   626,   415,   445,   457,   461,     0,   525,   529,   671,
     672,   871,   871,   673,   542,   543,   545,   871,   548,   547,
       0,     0,   459,   879,   840,   189,   189,   676,   189,   879,
     840,   610,   105,   610,   111,   891,   891,   915,   920,   886,
     886,   886,     0,   925,     0,     0,     0,     0,     0,     0,
       0,     0,   424,     0,     0,     0,   344,     0,   342,   343,
       0,     0,   255,   192,   313,   671,   672,   314,   315,     0,
       0,   486,   513,     0,   306,   305,   831,   830,     0,   303,
     302,   300,   301,   299,   298,   297,   295,   296,   293,   294,
     288,   289,   290,   291,   292,   286,   287,     0,     0,     0,
       0,     0,     0,     0,   238,   252,     0,     0,   237,   610,
     610,     0,   610,   607,   712,     0,     0,     0,     0,     0,
     372,     0,   376,     0,   378,     0,   614,   723,   722,   715,
     719,   718,   870,     0,     0,   737,     0,     0,   879,   402,
     879,   725,   610,   840,     0,   724,   720,     0,     0,   610,
       0,   614,     0,     0,     0,     0,   197,     0,   874,   181,
     185,   317,   179,   172,   170,   179,     0,   504,   516,   601,
       0,   222,   221,   220,   219,   282,   281,     0,   279,   278,
     276,   277,   275,   274,   273,   270,   271,   272,   268,   269,
     263,   264,   265,   266,   267,   261,   262,   468,     0,     0,
      26,     0,     0,   692,     0,    40,    46,    45,    59,    56,
      49,    57,     0,    50,     0,     0,    58,   523,     0,   169,
     179,   179,   167,   180,   331,   330,    19,    21,    73,    95,
     449,   805,   150,   156,   143,   157,   158,     0,     0,   139,
       0,     0,     0,     0,   482,     0,   134,   614,   723,   719,
     724,   720,     0,   614,   634,     0,   610,   725,     0,   724,
     720,     0,   337,     0,   666,     0,   868,     0,     0,   881,
       0,     0,     0,     0,   453,   629,   628,   452,   186,   550,
     549,   871,   871,   871,     0,   576,   672,     0,   566,     0,
       0,     0,   579,     0,   131,   126,     0,   182,   580,   583,
       0,     0,   558,     0,   129,   570,   104,     0,     0,     0,
       0,   110,     0,   879,   840,   879,   840,   924,   923,   888,
     887,   889,   318,   356,   233,   235,     0,   362,   363,     0,
       0,     0,     0,   343,   346,   748,     0,     0,     0,     0,
     256,     0,   347,   349,   352,   250,   249,   240,     0,   239,
     254,     0,     0,   709,   707,     0,   710,     0,   245,     0,
       0,   189,   379,     0,     0,     0,   716,   615,   721,   717,
     728,   610,   736,   734,   735,     0,   726,   879,     0,   732,
       0,   668,   669,   724,   720,     0,   368,   877,   177,   179,
     179,   175,   606,   604,   502,     0,   467,   465,   313,     0,
      24,    32,   699,    60,    55,    62,    66,    64,   165,   163,
      72,   812,     0,   141,     0,   145,     0,   147,     0,   149,
       0,    97,     0,   483,   615,   723,   719,   724,   720,     0,
     610,   639,   725,     0,     0,   669,   364,   365,   667,   366,
     858,   852,   853,   851,   883,   882,   884,     0,     0,     0,
       0,   615,     0,     0,   450,   184,     0,   552,   551,   546,
     610,   840,   575,     0,   567,   580,   568,   461,   461,   564,
     565,   562,   563,   610,   840,   313,   671,     0,   448,   127,
     571,   581,   586,   587,   448,   448,     0,     0,   448,   125,
     572,   584,   448,     0,   461,     0,   559,   560,   561,   461,
     610,   320,   319,   321,   610,   107,     0,   113,     0,     0,
       0,     0,     0,     0,   743,     0,   489,     0,   487,   259,
     304,     0,   241,   242,   251,   253,   708,   706,   713,   711,
       0,   246,     0,     0,   371,   375,   377,   879,   730,   610,
     731,   173,   171,   280,     0,   470,   472,   813,   806,   810,
     142,   140,     0,     0,     0,   743,   484,   723,   719,     0,
     725,   343,     0,   880,   614,   454,     0,   544,   879,     0,
       0,   569,   479,   479,   879,     0,     0,     0,   461,   461,
       0,   461,   461,     0,   461,     0,   557,   509,     0,   479,
     879,   879,   610,   610,   351,     0,     0,     0,     0,     0,
     215,   749,     0,   744,   745,   488,     0,     0,   243,   714,
     380,   319,   733,   879,     0,     0,   811,   144,   146,   148,
      98,   724,   720,     0,   615,     0,   885,   451,   121,   610,
     610,   840,   574,   578,   124,   610,   461,   461,   595,   479,
     313,   671,     0,   582,   588,   589,   448,   448,   479,   479,
       0,   479,   585,   498,   573,   103,   109,   879,   879,   358,
     359,   360,   361,   477,     0,     0,     0,   739,   750,   757,
     738,     0,   746,   490,   609,   729,   471,     0,   814,   614,
     879,   879,     0,   879,   594,   591,   593,     0,     0,   461,
     461,   461,   590,   592,   577,     0,   106,   112,     0,   747,
     742,   218,     0,   216,   741,   740,   313,   671,   672,   751,
     764,   767,   770,   775,     0,     0,     0,     0,     0,     0,
       0,     0,   314,   799,   807,     0,   827,   803,   802,   801,
       0,   759,     0,     0,   424,   763,   758,   800,   927,     0,
       0,   927,   119,   122,   610,   123,   461,   461,   600,   479,
     479,   500,     0,   499,   494,   478,   217,   820,   822,   823,
       0,     0,   755,     0,     0,     0,   782,   784,   785,   786,
       0,     0,     0,     0,     0,     0,     0,   821,   927,   398,
     828,     0,   760,   396,   448,     0,   397,     0,   448,     0,
       0,   761,   798,   797,   818,   819,   815,   879,   599,   597,
     596,   598,     0,     0,   511,   207,     0,   752,   765,   754,
       0,   927,     0,     0,     0,   778,   927,   787,     0,   796,
      41,   155,    36,   155,     0,    37,   808,     0,   394,   395,
       0,     0,     0,   393,   755,   120,   497,   496,    92,    95,
     214,     0,   424,     0,   755,   755,   768,     0,   743,   825,
     771,     0,     0,     0,   927,   783,   795,    42,    38,   812,
       0,   762,     0,   495,   208,   448,   753,   766,     0,   756,
     826,     0,   824,   776,   780,   779,   809,   832,   832,     0,
     493,   491,   492,   461,   205,     0,     0,   211,     0,   210,
     755,   927,     0,     0,     0,   833,   834,     0,   788,     0,
       0,   769,   772,   777,   781,     0,     0,     0,     0,     0,
       0,   832,     0,   212,   206,     0,     0,     0,   838,     0,
     791,   835,     0,     0,   789,     0,     0,   836,     0,     0,
       0,     0,     0,     0,   213,   773,     0,   839,   793,   794,
       0,   790,   755,     0,     0,   774,   837,   792,     0,     0,
       0
};

static const short yydefgoto[] =
{
    1828,   461,     2,   462,   171,   810,   345,   187,     3,     4,
      38,   141,   775,   393,    39,   776,  1172,  1608,    41,   413,
    1655,   780,    42,    43,   423,    44,  1173,   787,  1088,   788,
     789,   790,    46,   178,   179,    47,   819,   190,   186,   479,
    1435,    48,    49,   904,  1194,   910,  1196,    50,  1175,  1176,
     191,   192,   820,   480,  1118,  1119,   731,  1120,   241,    51,
    1101,  1100,   799,   796,  1270,  1269,  1045,  1042,   140,  1099,
      52,   243,    53,  1039,   641,   346,   347,   348,   349,   633,
    1766,  1687,  1768,  1721,  1805,  1481,   384,  1028,   350,   679,
     988,   351,   385,   386,   353,   354,   373,    55,   265,   781,
     442,   160,    56,    57,   355,   636,   356,   357,   358,   359,
     821,   360,  1611,   538,   700,   361,  1178,   493,   224,   494,
     362,   225,   507,   226,   204,   217,    63,   521,   539,  1446,
     874,  1333,   205,   218,    64,   552,   875,    65,    66,   771,
     772,   773,  1544,   485,   951,   952,  1719,  1684,  1633,  1575,
      67,   736,   375,   901,  1533,  1634,  1219,   732,    68,    69,
      70,    71,    72,   252,   894,   895,   896,   897,  1180,  1375,
    1181,  1182,  1183,  1360,  1370,  1361,  1523,  1362,  1363,  1524,
    1525,   733,   734,   735,   680,  1018,   364,   198,   519,   512,
     207,    74,    75,    76,   148,   149,   163,    78,   136,   365,
     366,   367,    80,   388,    82,   899,   127,   128,   129,   558,
     109,    83,   389,   993,   994,  1013,  1009,   703,  1546,  1547,
    1482,  1483,  1484,  1548,  1394,  1549,  1615,  1640,  1724,  1690,
    1691,  1550,  1616,  1714,  1641,  1725,  1642,  1748,  1643,  1751,
    1795,  1822,  1644,  1770,  1734,  1771,  1696,   481,   817,  1291,
    1617,  1658,  1739,  1428,  1429,  1495,  1621,  1723,  1558,  1618,
    1730,  1661,   958,  1774,  1775,  1776,  1799,   498,  1014,   854,
    1148,  1323,   500,   501,   502,   850,   503,   154,   852,  1185,
      92,   722,   859,  1326,  1327,   609,    86,   569,    87,   941
};

static const short yypact[] =
{
     328,   341,-32768,-32768,  3488,-32768,   234,   133,    67,   529,
      17,    83,-32768,-32768,  1705,-32768,   124,   270,   335,-32768,
  -32768,-32768,  1478,  1390,   915,   350,-32768,-32768,   408,   678,
  -32768,  2285,  2285,-32768,  3932,-32768,  3488,   343,-32768,-32768,
     446,-32768,   469,-32768,-32768,  2227,-32768,-32768,   418,  1135,
     509,   475,   544,-32768,-32768,-32768,-32768,   650,  2982,-32768,
    5910,-32768,  2501,   196,-32768,   576,-32768,-32768,  1262,   707,
     871,-32768,   560,  8070,-32768,-32768,-32768,  1292,-32768,-32768,
  -32768,  1614,-32768,-32768,   611,-32768,  3619,   573,-32768,-32768,
  -32768, 12299,   637,-32768, 12299,-32768, 12299,-32768,-32768,-32768,
      67,   529,   408,   591,-32768,   594,   544,-32768,  1470,-32768,
     357, 12392, 12392,   562,-32768,-32768,-32768,-32768,-32768,   443,
     616,   679,   774,   787,   626,   641,-32768,-32768,  2047,-32768,
    1675,    67,   529,-32768,   408,   591,-32768,   757,  1030,   653,
    6664,   654, 12299,-32768, 12299,   638,  5665,  2687,-32768,-32768,
    1847,  1634,  2687,-32768,  1749,  4985,  4985,  3932,   630,   643,
  -32768,   650,   997,   649,   655,-32768,-32768,   770,-32768,   686,
  -32768,  5499,-32768,-32768,   350,  3028,   728,-32768,-32768,-32768,
     418,  5219,  6757,   601,   743,-32768,-32768,   739,   576,   834,
     165,    59,   779,-32768,-32768,-32768,  9925, 11344,-32768,-32768,
    5849,  5849,  6738,  1292,  1037,-32768,-32768,   772,-32768,-32768,
    2163,-32768,-32768,-32768,-32768,-32768,  2501,  1064,-32768,   576,
    1292,-32768,-32768,-32768,  1971,  2501,-32768,   576,-32768,  5219,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     773,   878,   544,-32768,   576,  2088,  1812,-32768,-32768,-32768,
  -32768,-32768,   786,-32768,  1087,   576,   357,-32768,   913,   775,
    1374,   932,-32768,   180,-32768,-32768,-32768,-32768,-32768,  6161,
  -32768,   591,-32768,-32768,-32768,-32768,  2482,-32768,   760,   765,
  -32768,-32768,-32768,-32768,   810,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   780,-32768,-32768,
    1087,  8070,  1275,-32768,   788,-32768,-32768,-32768, 13509, 13602,
   13695, 13695,   790,-32768,-32768,-32768,-32768,-32768,   807,   844,
     847,   872,   877,  1161, 12857,  1823, 13695,-32768,-32768, 13695,
  -32768,-32768, 13695, 10223,-32768, 13695,   176,   846,-32768, 13695,
  -32768, 12950,-32768, 13764,   193,  1140,  6509, 13043,-32768,   944,
    3722,-32768,  2845,  6234,  5296,-32768,   309,-32768,  1105,  3550,
     867,   176,   176, 12299,  6664,  1586,-32768,   909,  1823,   932,
  -32768,-32768, 13137,   862,   918,-32768,  8947,   884,  1779,  3953,
     885,   908,  1784,   686,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,   616,   679,   774,  1823,   787,   626,   910,   641,
  -32768,   968,-32768,  3235,   909,    67,   529,-32768,-32768,-32768,
  -32768,-32768,-32768,  4576,-32768,  5219,  7127,  2506,-32768,-32768,
     176,   612, 12299,-32768,  5665,-32768,  2967,-32768,   950,   954,
  -32768,-32768,-32768,   997,  2687,-32768,-32768,  2687,-32768,   927,
  -32768,-32768,-32768,   997,   997,   997,-32768,-32768,-32768,  6161,
      90,   931,   934,-32768,-32768,-32768,-32768,  6664,-32768,  1095,
    1123,-32768,-32768,   770,-32768,   576,-32768,-32768,-32768,-32768,
     987,-32768,-32768, 10786, 13137,-32768,-32768,   952,-32768,   918,
     964,  8947,   527,  2491,  6757,  2491,  2551,  5791,   993,-32768,
     394,  6068,  1011,  1040,   788,-32768,  1023,   344,    94,  7400,
    7134,-32768,-32768,  7134,-32768,  7255,  7255,  6738,  7511,  1014,
  -32768,   576,  5219,-32768, 11437,-32768,-32768,  7264,  1971,  2501,
    5219,-32768,   576,-32768,-32768,  1971,-32768,   576,  1111,-32768,
   12299,-32768,-32768,   909,   932,   773,-32768,-32768,  2088,  2185,
  -32768,  1087,   576,-32768,-32768,-32768,  1070,  1073,  1098,  1096,
  -32768,-32768,-32768,-32768,  5665,-32768,   896,-32768,   369,-32768,
    1066,-32768,  1069,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,  1087,-32768,-32768,   277,-32768,   664,-32768,
   12299, 13137, 10223,-32768, 10223,-32768,-32768,-32768, 13137, 12392,
    8184,  8184,  8184,  8184, 13764,-32768,-32768,-32768,-32768,  1067,
   13230, 13230, 10223,  1077,   139,  1090,-32768,  1093,-32768,-32768,
  -32768,  1203, 12299,-32768, 10316, 10223,-32768, 12857, 12857, 10879,
   12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857,
   12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857,-32768, 13137,
  -32768,-32768,-32768,-32768,-32768, 13137, 13137, 13137, 12392,  6402,
     531,   364, 11530,-32768,-32768,-32768,  1152,  1374,  1208,   380,
     392,   396,  3365,   664,-32768,  2894,  2894,  4282, 11623,  1116,
    1170,-32768,-32768,   777, 12017,   419,-32768,   430,   357,-32768,
  -32768, 13137,  1374,-32768,-32768,   408,-32768,-32768,-32768,   462,
     573, 13137,  1169,-32768,-32768,   176,-32768,  5219,  2900,-32768,
  -32768,  1157,-32768,  1126,  1186,-32768,  1586,   910, 13742,-32768,
   11065, 11158, 13137, 13137, 10879, 13137, 13137, 13137, 13137, 13137,
   13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137,
   13137, 13137, 13137, 13137,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,    62,-32768,  1155,  1147,   686,  3235,  1212, 12299,-32768,
    1211,-32768,-32768,  1030,  1511,  1210,  1251,   505,  1229,  1232,
  -32768,-32768,  4013,  1262,-32768,  1240,-32768,-32768,-32768,-32768,
  -32768,-32768,   176,-32768,-32768,  1196,  1200,-32768,  1249,-32768,
  -32768,   418,-32768,-32768,-32768,-32768,    97,-32768,   600,-32768,
  -32768,-32768,-32768, 10111, 13742,-32768,  1209,-32768,-32768,-32768,
  -32768,-32768,  2645,  2645,  2829,-32768,-32768,-32768,-32768,  2163,
     611,-32768, 12111,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,  1040,  1258,-32768,-32768,-32768, 12485,  1170,   477,-32768,
  -32768,  7400,-32768,-32768,  7511,  7134,  7134,  7358,  7358,  7511,
     430,-32768,-32768,  7264,-32768,  1260,-32768,-32768,  1219,    94,
    7400,-32768,  1971,-32768,-32768,   576,  1255,   773,-32768,   679,
     774,-32768,-32768,   641,  1274,-32768,-32768,   332,-32768,-32768,
    1998,  3281,-32768,    94,  7790, 12299, 12299,-32768, 12299,    94,
    7790,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1932,
    1932,  1932,   799,-32768,   176,  1227,  1236,  1246,  9008,  1247,
    1253,  1286,  6593,  1287,  1288,  1294,-32768,  1263,-32768,-32768,
    1266,  1320,-32768,-32768,  1317,   677,   710,   447,   266, 13137,
    1322,-32768,  1326,  1281, 13764, 13764,-32768,-32768,  1332,  5100,
    5905,  6882,  4134,  3314,  5301,  5516,  2347,  2347,  2166,  2166,
     998,   998,   546,   546,   546,-32768,-32768,  1295,  1298,  1291,
    1310,  1313,  1314,  8184,   531,-32768, 10786, 13137,-32768,-32768,
  -32768, 13137,-32768,-32768,  1334, 13695,  1318,  1348,  1366,  1395,
  -32768, 13137,-32768, 13137,-32768, 13137,  2325,  3715,-32768,-32768,
    3715,-32768,   207,  1335,  1337,-32768,  1341,  8184,    94,-32768,
      94,  4901,-32768,  7790, 11716,  9408,  9408,  9733,  1338, 12950,
    1349,  2039,  3130,  3953,  1339,  1350,  1073,  1354,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768, 13137,-32768,  1823,-32768,
    1357,-32768, 13742,-32768, 13742, 13742, 13742,  1406,  4423,  7809,
    8235,  8315,  5343,  5559,  5973,  2589,  2589,  2589,  2715,  2715,
    2087,  2087,   733,   733,   733,-32768,-32768,  1784,  1362, 13323,
  -32768,  1365,  1414,-32768,   176,-32768,-32768,-32768,-32768,-32768,
  -32768,  2264,  4576,-32768,  8184, 12299,-32768,  1055, 12857,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   418,
  -32768,-32768,-32768,   616,-32768,   787,   626, 13137,   272,-32768,
     479,   539,   550,  1418,-32768,   102,-32768,  4087,  3378,  3378,
    3890,  3890,  2829,  5156,   188,  2163,-32768,  4482,  3399, 12205,
   12205,  9829,   362,  1378,   421,  2120,-32768, 10786, 10412,-32768,
    4197,  1222,  1222,  1397,-32768,-32768,-32768,  1423,-32768,-32768,
  -32768,-32768,-32768,-32768,  1554,-32768,  1002,  1009,-32768, 13137,
    7526,  3788,-32768,  3788,   287,   287,   147,   558,  7560,  6194,
      80,  4379,-32768,   200,   287,-32768,-32768,  1381,   176,   176,
     176,-32768,  1385,    94,  7790,    94,  7790,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,  8184,-32768,-32768,  1405,
    1411,  1417,  1422,  1196,-32768,-32768,  8790, 10786, 10507,  1402,
  -32768, 12857,-32768,-32768,-32768,-32768,-32768,   652,  1409,-32768,
  -32768,  1415,   191,  1045,  1045,  1408,  1045, 13137,-32768, 13695,
    1518, 12299,-32768,  1426,  1431,  1436,-32768,  2325,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,  2325,-32768,    94,  1437,-32768,
    1420,-32768,-32768,  4697,  4697,  4829,-32768,-32768,-32768,-32768,
  -32768,-32768, 13742,-32768,-32768, 13137,-32768,-32768,   204,  1439,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768, 13764,-32768,-32768,
  -32768,  1453,  1445,-32768,   835,-32768, 13137,-32768, 13137,-32768,
   13137,-32768, 10600,-32768,  4087,  3378,  3378,  4943,  4943,  5618,
  -32768,   474,  4482,  4087,  1455,   976,   533,   617,   750,   359,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   208,  1916,  1916,
     592,   592,   592, 10786,-32768,-32768,  2185,-32768,-32768,-32768,
  -32768,  7790, 13742,   243,-32768,  3442,-32768,   576,   576,-32768,
  -32768,-32768,-32768,-32768,  7790,   525,   813, 13137,  1111,-32768,
    1501,-32768,-32768,-32768,   713,   873,  1614,  1634,   886,   287,
    1504,-32768,   920,  1509,   576,  4758,-32768,-32768,-32768,   576,
  -32768,-32768,  1524,-32768,-32768,-32768,  1473,-32768,  1474,  1477,
   13137, 13137, 13137, 13137,    98, 10786,-32768,  1523,-32768,-32768,
   13764, 13137,-32768,   652,-32768,-32768,-32768,-32768,-32768,-32768,
    1479,-32768,  1548,   176,-32768,-32768,-32768,    94,-32768,-32768,
  -32768,-32768,-32768, 13742, 13137,-32768,-32768,-32768,  1453,-32768,
  -32768,-32768,  1488,  1489,  1491,    98,-32768,  5095,  5095,   430,
    6030,   831,  4197,-32768,   592,-32768, 10786,-32768,    94,  1492,
     563,-32768,  1536,  1536,    94,  1495, 13137, 13137,  8701,   576,
    7655,   576,   576,  4182,   576,  7666,-32768,-32768,  5058,  1536,
      94,    94,-32768,-32768,-32768,  1498,  1499,  1513,  1514,  1823,
  -32768,-32768,  9638,  1573,-32768,-32768, 10786,  1517,-32768,-32768,
  -32768,-32768,-32768,    94,  1521,  1516,-32768,-32768,-32768,-32768,
  -32768,  7222,  7222,  6887,  3139,  3139,-32768,-32768,-32768,-32768,
  -32768,  7790,-32768,-32768,-32768,-32768,  8701,  8701,-32768,  1536,
     692,   928, 13137,-32768,-32768,-32768,  1111,  1111,  1536,  1536,
     896,  1536,-32768,-32768,-32768,-32768,-32768,    94,    94,-32768,
  -32768,-32768,-32768,-32768,  1151,   229,  9526,-32768,-32768,-32768,
  -32768, 11827,-32768,-32768,-32768,-32768,-32768,  7918,-32768,  3139,
      94,    94,  1522,    94,-32768,-32768,-32768, 13137, 13137,  8701,
     576,   576,-32768,-32768,-32768,  9257,-32768,-32768,  1823,-32768,
  -32768,-32768,   285,-32768,-32768,-32768,  1569,   999,  1010,-32768,
  -32768,-32768,-32768,-32768, 13137,  1570,  1580,  1588, 12578,   503,
    1823,  1237,   809,-32768,-32768, 12671,  1640,-32768,-32768,-32768,
    1589,-32768,  3220,  6460,  7050,  1648,-32768,-32768,  1555,  1557,
    1558,-32768,-32768,-32768,-32768,-32768,  8701,  8701,-32768,  1536,
    1536,-32768, 11251,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
     688,   688,  1609,  1576,  1577,  7950,-32768,-32768,-32768,-32768,
    1612, 13137,  1613,  1615,  1627,  2056,  2073,-32768,-32768,-32768,
  -32768,  1593,-32768,-32768,  1111,  1181,-32768,  1193,  1111, 12764,
    1239,-32768,-32768,-32768,-32768,-32768,-32768,    94,-32768,-32768,
  -32768,-32768,  1587,  8812,  1585,-32768, 12392,-32768,-32768,-32768,
    1680,-32768, 10018, 12392, 13137,-32768,-32768,-32768,  1637,-32768,
  -32768,  1645,-32768,  1627,  2056,-32768,-32768,   770,-32768,-32768,
   13416, 13416, 10693,-32768,  1609,-32768,-32768,-32768,   509,   418,
  -32768,  1596,   776,  5219,  1609,  1609,-32768, 11922,    98,-32768,
  -32768,  1649,  1607,  9046,-32768,-32768,-32768,-32768,-32768,  1453,
     104,-32768,   192,-32768,-32768,  1111,-32768,-32768,   703,-32768,
  -32768,  9155,-32768,-32768,-32768,-32768,  1453,   106,   106,  1658,
  -32768,-32768,-32768,   576,-32768, 13137,  1660,-32768,  1664,-32768,
    1609,-32768,  1638,  1823,   336,  1667,-32768,   247,-32768,  1669,
    1629,-32768,-32768,-32768,-32768, 13137,  1628,   770,  1677,   106,
     770,   106,  1682,-32768,-32768, 10972,  1633,  1735,   944,   273,
  -32768,-32768,   304,   361,-32768, 10786,  1639,-32768,  1656,   770,
    1693,  1694,   770,  1697,-32768,-32768, 13137,   944,-32768,-32768,
     330,-32768,  1609,  1652,  1700,-32768,-32768,-32768,  1767,  1769,
  -32768
};

static const short yypgoto[] =
{
  -32768,  1771,-32768,  -332,  1598,  -403,    10,    -3,  1773,-32768,
    1741,-32768,-32768,-32768, -1462,-32768,   587,-32768, -1459,-32768,
     125,  1018,    61,  -387,-32768,-32768,    92,-32768,  -715,-32768,
  -32768,   694,    60,  1635,  1346,  1631,-32768,    86,  -176,  -800,
  -32768,     0,   -36,-32768,-32768,-32768,-32768,-32768,   635,-32768,
  -32768,-32768,-32768,-32768,-32768,   524,   -14,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1723,  -749,
    8141,  -159,    -5,  -666,  -192,   -29,  1679,  -601,-32768,   268,
  -32768,   184,-32768, -1562,-32768, -1361,   111,   741,  -300,-32768,
    -942,  7969,  4024,  7158,  -106,  5315,  1528,  -340,   -54,   -69,
    1497,  -134,   -68,   121,-32768,-32768,-32768,  -349,-32768,  -165,
  -32768,-32768, -1508,   -19,  -351,  7501,    11,    28,  -141,    76,
     219,  -211,    -1,  -154,  -174,  -171,    15,   129,  -198,-32768,
    -385,-32768,-32768,-32768,-32768,-32768,   570,  1352,  3403,-32768,
     753,-32768,-32768, -1304,  -467,  1012,-32768,-32768,-32768,-32768,
      36,-32768,-32768,-32768,-32768,-32768,-32768,  1100,  -386,-32768,
  -32768,-32768,-32768,-32768,-32768,   500,   673,-32768,-32768,-32768,
     467, -1056,-32768,-32768,-32768,-32768,-32768,-32768,   668,-32768,
     389,  1119,-32768,   808,  1178,  5568,    21,  1653,  1285,  1874,
  -32768,  -518,-32768,    73,   763,  1841,  -129,   296,  -100,  5866,
    1503,-32768,  6920,  2735,   137,   -17,  -107,-32768,  1736,   -49,
  -32768,  6371,  4103,  -213,-32768,  1272,   214,-32768,-32768,   329,
  -32768,-32768,   393,  1242,-32768, -1520,-32768,-32768,-32768, -1527,
  -32768, -1455,   153,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   143,-32768,-32768,
  -32768,-32768,-32768,   148, -1351,-32768,-32768,   -52,-32768,-32768,
  -32768,-32768,  -735, -1638,-32768,    99, -1311,  -775,  -166,  1038,
  -32768,-32768,-32768,-32768,  -413,-32768,  -401,  -203,-32768,   123,
  -32768,-32768,   666,   451,-32768,   395,-32768,  2167,  -239,  -756
};


#define	YYLAST		13851


static const short yytable[] =
{
     105,    37,   460,    62,   468,   529,   126,   469,   119,  1057,
     794,   470,   705,   266,    36,    58,   825,  1111,   613,   615,
     717,   559,   795,   412,   215,    73,   445,   448,   457,   716,
     499,   898,    59,    37,   312,    62,   786,   793,   421,   203,
     717,   943,  1229,   551,    62,   180,    36,    58,   549,   716,
    1102,   646,   147,   152,   240,   175,   181,    73,  1040,   216,
     183,   774,   811,  1123,    59,   371,    73,   372,   419,   420,
     534,   536,   254,    59,  1500,   528,   263,  1496,  1096,   411,
      60,   184,   266,   418,   535,   310,   546,   107,   794,  1607,
     363,  1585,  1609,   363,    97,   363,    45,  1659,   228,   603,
     851,  1676,   684,   563,   424,   177,   176,   311,   482,   684,
     363,   363,    60,   430,   408,  1344,   684,  1346,  1772,  1373,
    1777,   182,  1689,    93,  1077,  1376,   483,    85,    45,  1187,
     720,  1732,  1479,    98,  1103,  1192,  -876,    45,  1706,   427,
     440,   363,   266,   363,    94,   705,   215,   884,  1512,  1513,
     720,   425,   603,  1803,   484,   161,   857,   273,   858,    85,
    1757,    73,   203,  1673,  1302,  1534,   477,   902,    59,  1758,
      62,   465,  1078,  1349,    62,   180,   444,   447,   188,   723,
     724,   216,    58,   380,  1729,   175,   181,  1741,   668,  1769,
     183,  1374,    73,  1760,  1689,   496,    73,  1746,  1747,    59,
     808,   429,  1773,    59,  1689,  1689,   257,  1110,  1350,  1480,
      91,   184,  1351,  1303,  1759,  1566,   426,   497,   268,   111,
     829,   510,   513,    61,  1572,  1573,  -137,  1574,   624,   561,
    -137,   545,   547,    45,   669,   177,   176,  -633,   800,   801,
     694,  1735,   668,  1783,  1352,   268,   557,    60,  1258,  -327,
    1689,   182,   228,  -137,   639,    61,   640,  -137,   229,   230,
     228,   228,   478,  1377,    61,  1607,  1424,    45,  1609,   830,
    1442,   568,   831,  1293,   268,   562,   161,   161,   161,  1755,
     377,   131,   132,  -633,  -633,  1402,   856,   268,   669,   478,
     228,   690,  1580,  1268,    85,  1825,  1271,    88,  -633,    95,
    1121,  1405,  1689,  1790,   681,   309,   689,   489,   816,   457,
     254,  1378,  1791,   782,  1425,    15,  1784,   942,  1443,  -448,
      96,   625,   143,   161,   876,  1680,  1681,   378,    -1,   273,
     164,  -155,   883,  -136,  1294,  1809,   379,   135,   726,  1162,
    1581,    -2,   363,    89,   725,    90,   228,   268,  1580,   532,
    -448,  1288,  1289,  1450,  -448,   310,   777,  1792,   710,    61,
     262,     8,     9,   254,   737,   112,  1809,  1750,   131,   132,
     717,  1163,   363,   728,   534,   536,  1283,   311,   770,   383,
     390,   534,   268,  1810,   457,   727,   445,   448,   882,   888,
      61,   737,  1809,   694,    61,    73,  1636,   536,  -448,   228,
    1091,  1787,    59,   802,   711,  1496,   797,   845,  -312,  1108,
    1109,  -334,  1376,   268,  1811,   495,   134,   135,   913,  1386,
      26,  1388,   792,   134,   135,   216,  1812,   139,  -610,  1000,
     113,   363,  -610,   377,     8,     9,   313,   989,   167,   856,
    1824,  1002,   273,  1081,   497,  1004,  1788,   990,   559,   536,
     426,   164,   164,   164,  -312,  -312,   846,  -334,  -334,   847,
     991,  1488,   273,   228,   914,   506,    62,   813,  1019,  -312,
    -658,  1813,  -327,   559,   835,  1001,   841,   843,   181,  1802,
     378,  -610,   183,  -610,  -610,   142,  -610,  1003,    73,   379,
     135,  1005,  1335,   216,  1286,    59,   254,  -610,   164,  -610,
     792,  1820,   323,   184,   394,   268,    99,   114,   115,   168,
     395,   886,  -154,   262,  -610,  -610,  -658,  -658,    26,  1230,
    1421,  1422,   497,  -632,   142,   268,  1149,   185,  1295,  -610,
     169,  -658,   228,  1041,   887,   189,   865,   866,   193,   363,
     829,   954,   955,   182,   959,   960,   961,   962,   963,   964,
     965,   966,   967,   968,   969,   970,   971,   972,   973,   974,
     975,   976,   116,   117,   228,   228,  1449,  1092,   170,  -632,
    -632,   228,  1150,   268,  1296,   309,   702,   706,   709,  1455,
     985,   924,  -313,  1093,  -632,    95,  1651,   228,  1297,   830,
    1456,    40,   831,    61,  -870,   489,     8,     9,   986,  1299,
     194,  1112,   432,  1113,   889,   890,    96,  1353,    18,   363,
    1104,   363,  1510,   363,   270,     8,     9,    10,   363,   932,
     932,   932,   932,    40,    18,   251,   987,   681,  -313,  -313,
     950,   363,   666,   667,  1298,  1107,   161,   161,   161,   228,
     370,   363,   495,  -313,   363,  1300,   898,   143,    26,  1114,
     313,   134,   135,  1354,    21,   376,    26,   392,  1511,  1115,
    1116,  -138,  -138,   229,   471,  1328,  -311,   885,   131,   132,
      28,   271,   396,   998,   642,  1329,   782,   363,   310,   794,
    1320,  1322,   400,  1087,   717,   268,    61,  1330,  1159,  1160,
     639,   795,   640,   716,  1164,  1117,   792,   401,  1036,   195,
     311,   985,    33,   496,   174,   786,   793,   837,  1043,   702,
     706,   709,  -311,  -311,  1086,   432,  1007,  1010,   497,   986,
     495,   603,   489,   134,   135,   497,  1551,  -311,   534,   646,
     457,   422,  1202,    93,   143,   397,  1562,  1685,   499,  -399,
    -327,    15,  -152,   268,   499,   196,   197,   987,  1401,  1084,
    1396,  1398,  1764,   450,    94,   144,    94,  1567,   474,   458,
     414,   415,   416,    10,   228,  -653,    95,   126,   247,   432,
    1089,   266,   248,   843,  -399,  -153,  1121,   363,  -399,  1097,
     489,   273,   317,  1686,   222,   223,   489,    96,   489,   489,
    1551,    14,   878,   412,   720,   153,   717,    -7,  1765,  -659,
      21,  1122,   377,   131,   132,  1317,   472,   260,    18,   950,
    -399,   164,   164,   164,    20,   489,   261,   271,   898,   762,
     763,   195,   489,    23,   554,   694,  1022,   170,   228,   268,
     398,    95,   489,   792,   473,  1398,  1112,   476,  1113,   889,
     890,   496,   486,   399,   268,  -659,  -659,   550,    33,   378,
     540,    96,    96,  1128,  1129,   497,   570,   499,   379,   135,
    -659,   572,  1551,   497,   142,  1174,  1445,   196,   524,    93,
     555,   856,  1023,  1024,  1657,   578,  1188,  1189,  1457,  1190,
    -336,   857,   567,   611,  1114,   618,   142,   929,  1151,  1152,
      94,    26,  1282,   601,  1115,  1116,  1177,   457,   309,  -400,
      62,    15,   619,   792,   363,   363,  1319,   363,   642,   792,
     435,  1171,  -130,   273,    15,   437,   495,   957,   228,   131,
     132,   620,    73,   495,   621,   497,  -336,  -336,  1485,    59,
    1117,   497,   249,  1290,  -400,  1727,   250,   490,  -400,   541,
    1551,  -330,  1761,   542,   979,   911,  -128,  -130,    15,   622,
     996,  -130,    95,   489,   623,   161,   684,  1731,  1336,  1337,
    1338,   133,   721,   161,   153,   553,  1016,   489,   228,   553,
    -400,    26,   739,    96,   134,   135,   268,  1179,  1551,  1507,
     740,  -128,   932,  -130,    93,  -128,  1232,   778,   560,  -336,
     432,   912,  1287,  1568,   764,   765,  1381,  1382,  1383,   457,
     270,   445,   448,    10,  -336,    94,   706,   268,  -336,   142,
     445,   448,   957,   131,   132,  1551,   932,  -128,   766,  1553,
    1406,  1407,   792,  1409,   779,  -336,   496,    94,   499,    18,
     499,    96,   565,   270,   415,   416,    10,   805,  -336,  -336,
      21,  -336,    -6,  -336,   497,   809,  1007,  1010,   497,   131,
     132,  1340,   818,   495,   563,    93,   451,   452,    95,   268,
    1806,   495,   827,   770,  1638,    26,    95,   266,   134,   135,
     453,  -336,  -336,    21,   828,  1639,    94,  1089,  -869,    96,
     454,   663,   664,   665,   666,   667,  -336,    96,    33,    28,
     271,   792,   455,   932,   363,   222,   223,  1341,   489,   522,
     523,    26,    14,   844,   134,   135,   273,   853,   414,     8,
       9,    10,   489,   497,   489,  1400,   489,   -56,   989,    18,
      61,    33,   -56,   495,   872,    20,   530,   531,   990,   495,
     164,   792,   540,   -56,    23,  1174,   855,  1174,   164,    15,
     496,   991,  1358,  1368,   794,  1174,   706,   905,    21,   932,
     906,  1305,  1306,   497,   907,   712,  1620,   522,   814,  1359,
    1305,  1306,   497,    15,   261,   271,  1177,  -448,  1177,   268,
      62,   268,    62,   908,  1177,   499,  1177,   936,   216,   915,
      62,  1171,   916,  1171,  1345,   530,   815,   938,   499,   670,
     489,  1171,    73,   792,    73,   792,    33,  -448,  -448,    59,
     939,    59,    73,   942,  1397,   932,  -875,   803,   997,    59,
     804,  1017,  1413,  1578,  1579,   497,   999,   497,   273,  1019,
    1246,  1491,   807,  -194,  1046,   826,     8,     9,   489,   671,
     672,   253,  1038,   673,   674,   675,   676,  1047,   142,  -194,
     363,  -194,   495,   522,  1708,  1246,   495,  1179,  1048,  1179,
    1079,   161,   161,   161,    18,   530,  1709,  1179,  1080,  1235,
     161,   161,   161,   857,   792,    99,   100,   101,  1083,   232,
     233,   234,   268,   435,  1085,   268,   437,  1122,    26,   131,
     132,   134,   135,   133,  1007,  1010,   497,  1090,  1397,    20,
     565,   161,  1260,    26,    18,  1328,  1094,  1654,   266,  1095,
     235,   522,  1713,  1347,  1348,  1329,  -330,  1098,   792,  1358,
    1105,   495,  1106,  1379,  1199,  1200,  1201,  1330,    26,  1126,
      15,   102,   103,   236,  -448,  1147,  1359,  1154,  1437,  1438,
     497,    26,  1155,  1158,   134,   135,  1161,  1203,  1814,  1174,
     792,  1246,   377,     8,     9,   499,  1204,  1246,   604,  1151,
    1152,   495,   925,   792,  -448,  -448,  1205,  1207,   605,  -448,
     495,   263,   497,  1208,  1209,  1210,  1211,   237,   238,   239,
    1177,   857,  1212,  1213,    62,   497,  1214,    99,   114,   115,
     556,  1215,  -151,   146,   146,  1171,   162,  1217,  1218,   378,
      61,  1220,    61,   120,   121,   122,    73,  1221,   379,   135,
      61,     8,     9,    59,  1224,  1222,   563,   489,  1223,   489,
     977,   489,   219,   495,   227,   495,   978,    21,   980,   981,
     244,  1225,   567,  1226,  1227,   255,   164,   164,   164,    18,
    1237,  1239,  1174,   116,   117,   164,   164,   164,  1665,  1240,
    1670,   932,  1667,  1241,  1242,  1250,    26,  1251,  1261,   123,
     124,  1179,  1035,    26,  1252,  1157,   134,   135,   568,  1262,
    1266,  1246,  1037,  1177,  1267,  1543,   164,    62,  1274,  1246,
    1328,  1275,  1277,   377,     8,     9,  1280,  1281,  1171,  1301,
    1329,    99,   114,   115,   495,   511,   514,  1459,  1315,    73,
    1334,  1380,  1330,  1461,  1462,  1384,    59,  1459,  1464,   434,
    1390,  1462,   792,   268,   434,  1410,  1391,   443,   443,   162,
     792,   603,  1392,  1399,   402,   403,   404,  1393,  1246,  1403,
     378,  1408,  1437,  1438,   497,  1404,  1412,  1246,   495,   379,
     135,   159,   497,  1420,   219,   489,  1414,   116,   117,   118,
     475,  1415,  1740,  1743,  1179,  1156,  1416,  1419,  1606,  1426,
    1614,  1427,   509,   509,   518,  1430,   792,   120,   889,   890,
     495,  1605,  1612,  1460,  1635,  1441,  1465,    26,   227,  1186,
     406,   407,    73,   495,  1466,  1191,   268,   537,   497,    59,
    -699,   445,   448,  1472,  1473,  1652,  1653,  1474,  1486,    99,
     114,   115,  1489,  1664,    61,  1664,   153,  1490,  1497,  1498,
     268,  1499,  1509,   483,  1614,  1515,   227,  1479,  1539,  1540,
      26,  1557,   216,   123,   124,  1605,  1612,   258,     8,   259,
      10,   564,  1798,  1541,  1542,  1798,    73,  1613,   803,   804,
    1554,  1556,  1624,    59,  1637,  1646,   807,   270,   131,   132,
      10,  1702,  1705,  1647,  1817,   116,   117,  1798,   730,  1660,
     228,  1648,  1662,   446,   449,  1570,  1571,    21,  1475,  1476,
    1477,  1478,   227,   255,   260,  1671,  1672,  1674,  1675,  1487,
    -927,  1692,  1693,   261,    29,  1697,  1699,    21,   120,   121,
     122,  1613,   395,  1700,  1253,  1722,  1254,    61,  1707,  1718,
    1738,  1614,  1722,    28,   271,   443,  1716,   262,  1726,   159,
    1736,  1737,  1605,  1612,  1745,    33,  1744,   311,    99,   100,
     101,   363,  1752,    73,   311,   227,   255,  1753,  1246,  1246,
      59,  1778,   495,  1781,  1606,    33,  1614,  1782,  1231,  1789,
     495,   865,   866,  1785,   123,   124,  1793,  1605,  1612,  1794,
    1800,  1797,  1243,  1807,  1244,  1804,  1245,  1808,    73,  1815,
    1722,  1816,    99,   438,   439,    59,  1818,  1819,   228,  1786,
    1821,    26,  1826,  1827,   102,   103,   104,  1829,  1613,  1830,
      61,     1,   311,  1246,   467,     5,   495,   166,   219,   227,
     489,  1704,   414,     8,     9,    10,  1284,    99,   114,   115,
     161,   767,   768,   769,  1082,   862,   434,   532,   863,   434,
     511,   514,   464,  1613,  1742,   162,   162,   162,   102,   117,
     466,   564,   881,   812,  1369,    99,   100,   101,  1431,  1610,
    1279,   374,    21,   431,    61,  1688,    99,   114,   115,   260,
    1276,   161,   161,   161,  1049,  1125,  1447,  1339,   261,   271,
     635,   610,  1468,   116,   117,    77,   219,  1371,   227,   255,
     258,   131,   132,    10,  1532,  1050,  1273,   984,  1292,  1385,
     525,  1387,   861,   691,   410,   861,  1650,   864,   864,   518,
      33,   102,   103,   475,  1763,  1584,  1552,    77,   940,   880,
    1749,   537,   116,   117,   475,  1762,    77,  1756,  1801,  1146,
      21,   435,   437,  1506,     0,     0,     0,   260,     0,   208,
     565,   220,     0,   537,   475,   309,   261,    29,     0,     0,
       0,    61,   309,     0,     0,     0,     0,  1452,  1453,  1698,
       8,     9,     0,  1418,     0,    13,     0,     0,     0,     0,
     262,     0,   206,     0,     0,     0,   131,   132,    33,     0,
       0,   563,     0,     0,  1467,     0,    61,     0,    18,  1469,
       0,   446,   806,     0,  1720,   537,     0,     0,     0,     0,
     957,  1720,     0,     0,   443,   164,   443,  1008,  1011,     0,
     309,     0,    26,     0,     0,   134,   135,     0,   533,   222,
     223,   428,   162,   162,   443,     0,    14,   433,    26,  1328,
       0,   134,   135,     0,     0,  1610,     0,   443,     0,  1329,
       0,   120,   889,   890,     0,   604,   164,   164,   164,    20,
       0,  1330,    77,   446,   449,   605,    77,     0,    23,  1720,
       0,     0,   208,   220,     0,     0,     0,     0,  1518,  1519,
       0,  1528,  1529,  1780,  1531,     0,     0,  1432,     0,  1433,
       0,  1434,   270,   131,   132,    10,     0,  1006,  1006,  1006,
     402,   403,   404,  1796,     0,   206,  1031,   123,   124,    99,
     114,   115,     0,   957,     0,     0,     0,     0,   803,   804,
     208,    18,     0,     0,     0,   807,    99,   114,   115,     0,
     227,     0,    21,  1492,  1823,     0,  1564,  1565,   694,     0,
       0,   543,   100,   101,     0,    26,     0,   405,    28,   271,
       0,     0,     0,   206,  1008,  1011,   406,   407,     0,   635,
       0,   635,  1263,     0,  1508,   116,  1701,   511,   514,     0,
    1514,     0,  1264,  1316,     8,     9,    10,     0,   446,   937,
      33,     0,   116,  1703,  1265,   698,  1535,  1536,   378,  1628,
    1629,  1630,   635,     0,   227,   244,     0,   544,   103,     0,
     862,   863,   511,   514,     0,     0,     0,     0,   881,  1555,
     323,   714,     0,    21,     0,  1494,   258,     8,     9,    10,
     759,   760,   761,   762,   763,     0,    26,     0,     0,    28,
     271,     0,     0,     0,  1127,  1127,  1133,     0,   120,   889,
     890,     0,   891,     0,  1133,     0,  1678,  1679,     0,     0,
       0,  1030,     0,  1576,  1577,     0,    21,     0,   162,     0,
       0,    33,     0,   260,     0,   729,     0,   861,   861,   864,
     864,   518,   261,    29,   892,   880,  1622,  1623,   172,  1625,
     145,     8,     9,    10,   173,    12,    13,   475,     0,     0,
       0,    26,    14,     0,   123,   124,   262,   661,   662,   663,
     664,   665,   666,   667,    33,     0,    16,     0,    17,    18,
      19,     0,     0,     0,     0,    20,   208,    99,   114,   115,
      21,   232,   233,   234,    23,   433,     0,   174,     0,  1248,
       0,     0,  1249,    26,   227,     0,    28,    29,   145,   131,
     132,    10,     0,  1256,    13,     0,    18,  1008,  1011,   206,
      31,     0,   235,     0,     0,     0,     0,     0,    77,     0,
      32,     0,     0,     0,     0,     0,     0,    18,    33,     0,
       0,     0,    34,   116,   117,     0,    35,     0,    21,   131,
     132,   159,     0,  1779,   208,   838,   208,   208,     0,  1143,
       0,    26,   849,  1715,    28,    29,     0,     0,     0,     0,
     433,     0,     0,  1030,     0,     0,     0,    18,    31,  1247,
       0,     0,  1247,   208,     0,   446,   806,   206,    32,   206,
     206,   208,     0,  1255,   694,     0,    33,  1031,  1031,  1031,
      34,    26,     0,   860,   134,   135,     0,     0,     0,     0,
       0,     0,   860,     0,     0,     0,   206,     0,   695,     0,
    1248,  1249,  1008,  1011,   206,   433,     0,     0,   696,  1256,
       0,  1008,  1011,   862,   863,   511,   514,     0,     0,     0,
     697,   698,   881,     0,   511,   514,   659,   660,   661,   662,
     663,   664,   665,   666,   667,     0,   862,   863,   881,     0,
       0,     0,     0,   244,     0,   571,   573,   574,   575,   576,
     577,     0,   579,   580,   581,   582,   583,   584,   585,   586,
     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
     597,   598,   599,   600,     0,   602,     0,     0,     0,     0,
    1304,  1304,  1133,  1133,  1133,   414,     8,   566,    10,  1313,
       0,  1133,  1133,  1133,   145,     8,     9,    10,     0,     0,
       0,     0,     0,  1331,  1331,  1332,     0,     0,   221,   222,
     223,     0,     0,   221,   222,   223,    14,     0,     0,     0,
       0,    14,   162,   446,   937,    21,     0,     0,     0,     0,
       0,   219,   260,    18,    21,  1008,  1011,     0,    18,    20,
     694,   261,   271,     0,    20,     0,     0,    26,    23,     0,
      28,    29,     0,    23,   145,     8,     9,    10,   221,   222,
     223,     0,     0,     0,   832,   567,    14,     0,   208,   798,
       0,     0,     0,    33,   833,     0,     0,  1248,  1249,  1008,
    1011,     0,    33,    18,  1256,     0,   834,   698,     0,    20,
     862,   863,   511,   514,    21,     0,     0,   881,    23,     0,
     694,   206,     0,     0,     0,     0,     0,    26,     0,     0,
      28,    29,     0,   511,   514,  1031,  1031,  1031,     0,     0,
       0,     0,     0,     0,   832,     0,     0,     0,   446,   449,
       0,     0,     0,   208,   833,     0,     0,   446,  1314,     0,
       0,     0,    33,     0,     0,     0,   842,   698,   145,     8,
       9,    10,     0,     0,    13,     0,     0,  1304,  1304,  1133,
    1133,  1133,     0,     0,  1313,     0,   206,   159,   755,   756,
     757,   758,   759,   760,   761,   762,   763,    18,     0,     0,
    1444,  1444,  1332,     0,     0,     0,     0,     0,    21,     0,
     145,   131,   132,    10,   694,     0,   253,     0,     0,   475,
     475,    26,   433,     0,    28,    29,     0,     0,     0,  1248,
    1249,     0,  1256,     0,     0,     0,     0,     0,   832,    18,
       0,   433,   862,   863,     0,   881,   475,     0,   833,     0,
      21,   475,     0,     0,     0,   860,    33,     0,   860,    81,
     834,   698,  1184,    26,     0,   917,    28,    29,     0,   108,
       0,     0,     0,     0,   860,     0,     0,     0,     0,   137,
      31,   446,   806,     0,     0,     0,   150,   150,   918,   150,
      32,    81,     0,  1008,  1011,     0,   923,     0,    33,     0,
      81,     0,    34,     0,     0,     0,   511,   514,     0,  1504,
    1504,     0,  1505,   210,     0,    81,   757,   758,   759,   760,
     761,   762,   763,   245,     0,   446,   806,     0,   108,     0,
     475,   475,     0,   475,   475,     0,   475,     0,     0,   276,
       0,   108,     0,     0,     0,     0,   368,     0,     0,   368,
       0,   368,   145,     8,     9,    10,   173,    12,    13,     0,
       0,     0,   488,     0,    14,   108,     0,     0,     0,   131,
     132,     0,     0,  1559,  1559,  1559,     0,     0,    16,     0,
      17,    18,     0,     0,     0,     0,     0,    20,   475,   475,
       0,     0,    21,   137,     0,    81,    23,   368,   694,   368,
       0,   150,   150,     0,     0,    26,   436,   150,    28,    29,
     150,   150,   150,     0,   694,     0,     0,     0,   131,   132,
       0,    26,  1130,    13,   134,   135,    81,   221,   222,   223,
      81,     0,  1131,     0,     0,    14,   210,    81,   695,     0,
      33,   475,   475,   475,  1132,   698,    18,     0,   696,     0,
       0,     0,    18,     0,     0,   210,   210,   210,    20,     0,
     697,   698,     0,   694,     0,     0,     0,    23,     0,     0,
      26,     0,     0,   134,   135,     0,     0,     0,     0,     0,
       0,     0,     0,  1044,   210,   219,   227,   695,   433,     0,
     414,   131,   132,    10,     0,     0,     0,   696,   475,   475,
       0,   548,     0,     0,     0,   145,     8,     9,    10,   697,
     698,   108,     0,     0,     0,   511,   514,     0,     0,     0,
       0,   860,     0,     0,   150,     0,     0,   860,     0,     0,
      21,     0,  1184,     0,  1184,     0,     0,   260,     0,  1365,
    1372,   518,  1184,     0,     0,    21,   261,   271,     0,     0,
       0,   145,     8,     9,    10,   173,    12,    13,    26,     0,
       0,    28,    29,    14,     0,   199,   108,   606,     0,     0,
     567,     0,  1364,     0,     0,   200,     0,    16,    33,    17,
      18,    19,   864,   864,   864,   201,    20,     0,     0,     0,
       0,    21,     0,    33,   227,    23,     0,   202,   174,     0,
       0,     0,  1197,  1198,    26,     0,     0,    28,    29,     0,
       0,   108,     0,     0,     0,   692,     0,   606,   606,   707,
       0,    31,     0,     0,     0,     0,     0,     0,   368,    81,
       0,    32,     0,     0,     0,   475,     0,     0,     0,    33,
       0,     0,     0,    34,     0,     0,     0,    35,     0,     0,
       0,     0,     0,   414,     8,     9,    10,     0,     0,     0,
       0,     0,     0,     8,     9,   433,     0,     0,   137,     0,
       0,     0,     0,     0,   433,     0,     0,     0,   108,     0,
     210,   108,     0,     0,     0,     0,  1143,   368,     0,   150,
       0,    18,     0,    21,     0,     0,     0,     0,   860,   150,
     260,     0,   150,     0,     0,     0,  1365,   860,   694,   261,
     271,     0,     0,     0,   150,    26,     0,     0,   134,   135,
       0,     0,    81,     0,     0,   860,   860,     0,   446,  1314,
       0,     0,  1501,   262,     0,     0,  1184,     0,     0,  1364,
       0,    33,  1502,   145,     8,     9,    10,     0,   210,   839,
     210,   210,   707,     0,  1503,   698,   839,     0,   270,   415,
     416,    10,     0,     0,   210,   210,     0,     0,   210,     0,
     210,   210,   210,   870,     0,     0,     0,   210,     0,     0,
       0,     0,   210,    21,     0,   210,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   368,    26,     0,    21,    28,
      29,     0,  1165,  1663,     7,     8,  1166,    10,   173,    12,
      13,    26,     0,   200,    28,   271,    14,     0,     0,   150,
       0,  1527,     0,   201,     0,     0,  1527,     0,     0,  1184,
      16,    33,    17,    18,    19,   202,     0,     0,   860,    20,
    -553,     0,     0,     0,    21,     0,    33,     0,    23,  1167,
       0,   174,     0,     0,  1526,     0,     0,    26,     0,     0,
      28,    29,     0,   922,  1168,   368,  1169,     0,     0,     0,
       0,     0,     0,     0,    31,   108,   108,   108,   108,     0,
       0,     0,     0,     0,    32,     0,     0,     0,   414,   131,
     132,    10,    33,     0,     0,     0,  1170,   368,   860,   860,
       0,   145,     8,     9,    10,     0,     0,   253,   655,   656,
     657,   658,  -553,   659,   660,   661,   662,   663,   664,   665,
     666,   667,   414,     8,     9,    10,     0,     0,    21,     0,
      18,     0,     0,     0,   108,   260,   606,     0,     0,     0,
       0,    21,     0,     0,   261,   271,     0,   694,   692,     0,
     606,   606,   707,   860,    26,     0,     0,    28,    29,  1032,
       0,     0,    21,  1034,     0,  1355,  1356,     9,    10,   260,
       0,   832,     0,   208,  1668,   208,    33,     0,   261,   271,
       0,   833,   210,     0,     0,     0,     0,     0,   231,    33,
       0,     0,     0,   834,   698,     0,     0,     0,     0,     0,
       0,     0,   567,     0,     0,    21,   206,     0,   206,     6,
      33,     7,     8,     9,    10,    11,    12,    13,    26,     0,
       0,    28,    29,    14,     0,  1451,     0,  1357,     0,     0,
       0,   137,     0,   368,     0,   200,    15,    16,   137,    17,
      18,    19,     0,     0,     0,   201,    20,   210,   245,     0,
       0,    21,     0,    33,    22,    23,    24,   202,    25,     0,
       0,     0,     0,     0,    26,    27,     0,    28,    29,   231,
       0,    30,     0,   713,     8,     9,    10,     0,     0,     0,
       0,    31,     0,     0,   208,   231,     0,   210,   210,  1135,
       0,    32,     0,     0,     0,  1138,     0,  1135,     0,    33,
       0,     0,     0,    34,     0,     0,     0,    35,     0,     0,
     323,   714,     0,    21,     0,     0,   210,   206,     0,   870,
     210,   210,   870,   870,   870,     0,    26,     0,   210,   715,
     135,     0,     0,     0,     0,   210,     0,     0,     0,     0,
     277,     0,   231,     8,     9,     0,     0,    12,    13,     0,
     231,     0,     0,     0,    14,     0,    81,     0,     0,   108,
     368,   368,     0,   368,     0,   108,     0,   231,    16,     0,
      17,    18,     0,     0,   606,   606,   606,    20,   231,   278,
     279,     0,     0,     0,     0,     0,    23,   606,   280,     0,
       0,     0,     0,     0,     0,    26,     0,     0,   134,   135,
       0,   281,     0,     0,     0,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,   300,   301,   302,     0,     0,   303,   304,
     305,     0,   306,     0,     0,   307,     0,     0,   108,   131,
     132,     0,     0,   685,   253,   270,   415,   416,    10,     0,
     686,   308,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   606,   606,     0,     0,   606,     0,    18,     0,     0,
       0,     0,   108,     0,     0,     0,   606,     0,   108,     0,
    1032,  1032,  1032,     0,   694,    21,   606,     0,  1138,     0,
       0,    26,   687,     0,   134,   135,     0,     0,    26,     0,
       0,    28,   271,     0,     0,     0,     0,     0,   695,  1165,
       0,     7,     8,  1166,    10,   173,    12,    13,   696,     0,
       0,     0,     0,    14,     0,     0,     0,     0,     0,     0,
     697,   698,     0,   688,     0,     0,     0,    16,     0,    17,
      18,    19,     0,     0,     0,     0,    20,   108,     0,   108,
     368,    21,     0,     0,     0,    23,  1167,   231,   174,     0,
       0,     0,     0,     0,    26,     0,   231,    28,    29,     0,
       0,  1168,     0,  1169,     0,     0,     0,     0,     0,     0,
       0,    31,   210,   210,   210,   210,   210,  1135,   870,     0,
       0,    32,   210,     0,  1135,  1135,  1135,     0,   231,    33,
    1138,     0,     0,  1170,     0,   108,   870,   870,   870,     0,
       0,     0,     0,   145,     8,     9,    10,     0,     0,    13,
       0,     0,   137,     0,     0,   150,    81,     0,    81,     0,
       0,     0,   231,  1366,    81,     0,    81,     0,     0,     0,
       0,   231,    18,     0,     0,     0,     0,     0,     0,   108,
       0,   108,     0,    21,     0,   145,   131,   132,    10,   694,
     231,   108,     0,     0,     0,     0,    26,     0,     0,    28,
      29,     0,     0,     0,     0,     0,   713,     8,     9,    10,
       0,     0,     0,  1130,    18,     0,     0,   231,   606,   606,
       0,   606,     0,  1131,     0,    21,   368,     0,     0,     0,
       0,    33,   606,     0,     0,  1132,   698,     0,    26,     0,
     606,    28,    29,   323,   714,     0,    21,     0,   606,   606,
     707,     0,     0,     0,     0,   155,     0,     0,     0,    26,
       0,     0,   134,   135,     0,   156,   145,     8,     9,    10,
     221,   222,   223,    33,     0,     0,     0,   157,    14,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
     210,   210,   870,   870,  1439,    18,     0,   210,   210,     0,
       0,    20,     0,     0,     0,     0,    21,     0,     0,     0,
      23,     0,   694,   870,   870,   870,   870,   870,     0,    26,
       0,     0,    28,    29,     0,     0,   108,     0,     0,     0,
    1366,     0,     0,     0,     0,     0,   832,     0,     0,   108,
     145,     8,     9,    10,     0,     0,   833,     0,     0,     0,
       0,     0,  1463,     0,    33,     0,     0,    84,   834,   698,
      81,     0,     0,     0,     0,   352,     0,   110,   352,    18,
     352,     0,     0,     0,     0,     0,   130,   138,     0,     0,
      21,     0,     0,     0,   151,   151,   694,   151,     0,    84,
       0,     0,     0,    26,     0,     0,    28,    29,    84,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     832,   151,     0,    84,     0,     0,   352,     0,   352,     0,
     833,   246,   870,   870,     0,   870,   256,   108,    33,   870,
       0,     0,   834,   698,     0,   414,   131,  1530,    10,   256,
       0,     0,     0,     0,   369,   210,     0,   369,  1324,   369,
     150,     8,     9,    81,     0,    12,    13,   654,   655,   656,
     657,   658,    14,   659,   660,   661,   662,   663,   664,   665,
     666,   667,     0,     0,     0,    21,    16,     0,    17,    18,
       0,     0,   260,     0,     0,    20,   870,   870,  1439,   870,
     870,   261,   271,    84,    23,   369,   108,   369,     0,   151,
     151,     0,     0,    26,     0,   151,   134,   135,   151,   151,
     151,     0,     0,     0,   231,   567,     0,   231,     0,     0,
       0,     0,     0,    33,    84,     0,     0,     0,    84,     0,
       0,     0,     0,   231,   151,    84,     8,     9,     0,   173,
      12,    13,   108,     0,   870,   488,     0,    14,     0,     0,
       0,     0,     0,   151,   151,   151,     0,     0,     0,     0,
       0,    16,     0,    17,    18,     0,     0,     0,     0,     0,
      20,     0,     0,     0,     0,     0,     0,     0,     0,    23,
       0,   694,   151,     0,     0,     0,     0,     0,    26,     0,
       0,   134,   135,     0,   616,   617,     0,   210,   839,   210,
       0,     0,     0,     0,     0,   695,     0,     0,   352,     0,
     626,     0,     0,   627,     0,   696,   628,     0,     0,   638,
       0,     0,   151,   643,     0,     0,     0,   697,   698,     0,
    1165,   683,     7,     8,  1166,    10,   173,    12,    13,     0,
       0,     0,     0,     0,    14,     0,     0,   352,     0,     0,
       0,     0,     0,     0,  1135,     0,     0,     0,    16,   231,
      17,    18,    19,     0,   256,   608,     0,    20,  -554,     0,
       0,     0,    21,     0,     0,     0,    23,  1167,     0,   174,
       0,     0,     0,     0,   231,    26,     0,     0,    28,    29,
       0,     0,  1168,     0,  1169,  1135,  1135,  1135,     0,     0,
       0,     0,    31,     0,     0,     0,   352,     0,   210,   256,
       0,     0,    32,   693,     0,   608,   608,   708,     0,     0,
      33,     0,   719,     0,  1170,     0,   369,    84,     0,     0,
       0,     0,     0,     0,     0,   145,     8,     9,    10,     0,
    -554,   563,   719,   746,   747,   748,   749,   750,   751,   752,
     753,   754,   755,   756,   757,   758,   759,   760,   761,   762,
     763,     0,     0,     0,    18,     0,   783,     0,     0,     0,
       0,     0,     0,     0,     0,    21,   256,     0,   151,   256,
     231,   694,     0,     0,     0,   369,   231,   151,    26,     0,
       0,    28,    29,     0,     0,     0,     0,   151,     0,     0,
     151,     0,     0,     0,     0,   832,     0,     0,     0,     0,
       0,     0,   151,     0,   352,   833,     0,     0,     0,     0,
      84,     0,     0,    33,     0,     0,     0,   834,   698,     0,
       8,     9,     0,   173,    12,    13,     0,     0,     0,     0,
       0,    14,     0,     0,     0,     0,   151,   840,   151,   151,
     708,     0,     0,     0,   840,    16,     0,    17,    18,     0,
       0,     0,   151,   151,    20,     0,   151,     0,   151,   151,
     151,   608,     0,   784,     0,   151,   785,     0,     0,     0,
     151,     0,    26,   151,   352,   134,   135,     0,     0,     0,
       0,     0,     0,   369,     0,     0,     0,     0,     0,     0,
     231,     0,   900,     0,   626,   627,     0,     0,   231,     0,
       0,     0,     0,     0,     0,     0,   352,   151,     0,     0,
       0,   352,   352,     0,   352,   352,   352,   352,   352,   352,
     352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
     352,   352,     0,     0,     0,     0,     0,     0,     0,     0,
     270,   131,   132,    10,     0,     0,    13,   231,     0,     0,
       0,     0,     0,   369,     0,     0,   231,     0,     0,     0,
       0,     0,     0,   256,   256,   256,   256,     0,     0,    18,
       0,     0,     0,     0,   231,   231,     0,     0,     0,     0,
      21,     0,     0,     0,     0,   369,   694,     0,     0,     0,
       0,     0,     0,    26,     0,     0,    28,   271,     0,  1165,
       0,     7,     8,  1166,    10,   173,    12,    13,     0,     0,
    1263,     0,     0,    14,     0,     0,     0,     0,     0,     0,
    1264,     0,   256,     0,   608,     0,     0,    16,    33,    17,
      18,    19,  1265,   698,     0,     0,    20,  -556,   608,   608,
     708,    21,   352,     0,     0,    23,  1167,  1033,   174,     0,
       0,     0,     0,     0,    26,     0,     0,    28,    29,     0,
       0,  1168,   719,  1169,     0,     0,     0,     0,     0,     0,
     151,    31,   270,     8,     9,    10,   173,    12,    13,     0,
       0,    32,   488,     0,    14,     0,     0,   231,     0,    33,
       0,     0,     0,  1170,     0,     0,     0,     0,    16,     0,
      17,    18,     0,     0,     0,     0,     0,    20,     0,  -556,
       0,     0,    21,     0,     0,     0,    23,     0,   694,   783,
       0,   369,     0,     0,     0,    26,     0,   130,    28,   271,
       0,     0,     0,     0,     0,   151,   246,     0,     0,     0,
       0,     0,  1263,     0,     0,   131,   132,   231,   231,     0,
     563,     0,  1264,     0,     0,     0,     0,     0,     0,     0,
      33,   900,     0,     0,  1265,   698,     0,     0,     0,   352,
     352,     0,   352,    18,     0,   151,   151,   840,     0,     0,
       0,     0,     0,     0,     0,  1145,   270,     8,     9,    10,
     694,     0,    13,     0,     0,     0,     0,    26,     0,     0,
     134,   135,   231,     0,   151,     0,     0,   608,   151,   151,
     608,   608,   608,     0,   695,    18,   151,     0,     0,     0,
       0,     0,     0,   151,   696,     0,    21,     0,   145,   131,
     132,    10,   694,     0,    13,     0,   697,   698,     0,    26,
       0,     0,    28,   271,    84,     0,     0,   256,   369,   369,
       0,   369,     0,   256,     0,     0,  1307,    18,     0,  1238,
       0,     0,   608,   608,   608,     0,  1308,     0,    21,     0,
       0,     0,     0,     0,    33,   608,     0,     0,  1309,   698,
       0,    26,     0,     0,    28,    29,     0,     0,     0,   626,
     627,     0,     0,     0,     0,     0,     0,     0,   155,  1165,
       0,     7,     8,  1166,    10,   173,    12,    13,   156,     0,
       0,     0,     0,    14,     0,     0,    33,     0,     0,     0,
     157,     0,     0,     0,     0,     0,   256,    16,     0,    17,
      18,    19,     0,     0,     0,     0,    20,  -555,     0,     8,
       9,    21,     0,     0,   253,    23,  1167,     0,   174,   608,
     608,     0,     0,   608,    26,     0,     0,    28,    29,   352,
     256,  1168,   352,  1169,   608,     0,   256,    18,  1033,  1033,
    1033,    31,     0,     0,   608,     0,   719,     0,     0,     0,
       0,    32,     0,     0,   694,     0,     0,     0,     0,    33,
       0,    26,     0,  1170,   134,   135,     0,     0,     0,   270,
       8,     9,    10,   626,   627,     0,     0,     0,  1501,  -555,
     651,   652,   653,   654,   655,   656,   657,   658,  1502,   659,
     660,   661,   662,   663,   664,   665,   666,   667,    18,     0,
    1503,   698,     0,     0,     0,   256,     0,   256,   369,    21,
       0,     0,     0,     0,     0,   694,     0,     0,     0,     0,
       0,     0,    26,     0,     0,    28,   271,     0,     0,     0,
       0,     0,   145,     8,     9,    10,     0,     0,     0,  1307,
     151,   151,   151,   151,   151,   840,   608,     0,     0,  1308,
     151,     0,  1145,  1145,  1145,   352,     0,    33,   719,     0,
       0,  1309,   698,   256,   608,   608,   608,     0,     0,     0,
       0,     0,    21,  1411,     0,   352,     0,   900,     0,     0,
     138,     0,     0,   151,    84,    26,    84,     0,    28,    29,
       0,  1367,    84,     0,    84,     0,     0,     0,     0,     0,
       0,     0,   200,     0,     0,     0,     0,   256,     0,   256,
       8,     9,   201,     0,    12,   253,     0,     0,     0,   256,
      33,    14,     0,     0,   202,     0,     0,     0,     0,    54,
       0,     0,     0,     0,     0,    16,     0,    17,    18,     0,
       0,     0,     0,     0,    20,     0,   608,   608,     0,   608,
       0,     0,     0,    23,   369,   694,    54,    54,     0,   158,
     608,    54,    26,     0,     0,   134,   135,     0,   608,     0,
      54,     0,     0,     0,     0,     0,   608,   608,   708,   695,
       0,     0,     0,    54,     0,    54,   656,   657,   658,   696,
     659,   660,   661,   662,   663,   664,   665,   666,   667,     0,
       0,   697,   698,     0,     0,     0,   264,   900,     0,   272,
       0,     0,     0,     0,     0,     0,     0,   151,   151,   151,
     608,   608,   708,     0,     0,   151,   151,   750,   751,   752,
     753,   754,   755,   756,   757,   758,   759,   760,   761,   762,
     763,   608,   608,   608,   608,   608,     0,     0,     0,   900,
       0,     0,     0,     0,   256,     0,     0,     0,  1367,     0,
       0,     0,   417,   417,     0,    54,     0,   256,     0,     0,
       0,    54,    54,     0,     0,   264,   272,    54,     0,     0,
     158,   158,   158,     0,     0,     0,     0,   456,    84,     0,
       0,     0,     0,     0,     0,     0,    54,     0,     0,     0,
      54,     0,     0,     0,     0,     0,    54,    54,     0,     0,
       6,     0,     7,     8,     9,    10,    11,    12,    13,     0,
       0,     0,     0,     0,    14,    54,    54,   158,     0,     0,
       0,     0,     0,     0,     0,   264,     0,     0,    16,     0,
      17,    18,     0,     0,     0,     0,     0,    20,     0,     0,
     608,   608,    21,   608,    54,   256,    23,   608,     0,   463,
       0,     0,     0,     0,     0,    26,     0,     0,    28,    29,
       0,     0,    30,   151,     0,     0,     0,     0,   151,     0,
       0,    84,    31,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    32,     0,    54,     0,     0,     0,     0,     0,
      33,   264,   657,   658,    34,   659,   660,   661,   662,   663,
     664,   665,   666,   667,   608,   608,   708,   608,   608,     0,
       0,     0,     0,     0,   256,     0,     0,     0,     0,     0,
       0,   270,     8,     9,    10,   173,    12,    13,     0,   638,
       0,   488,     0,    14,   751,   752,   753,   754,   755,   756,
     757,   758,   759,   760,   761,   762,   763,    16,     0,    17,
      18,   269,     0,     0,     0,     0,    20,     0,   634,     0,
     256,    21,   608,     0,     0,    23,     0,   694,   145,   131,
     132,    10,     0,     0,    26,   417,     0,    28,   271,     0,
       0,     0,     0,   264,     0,     0,     0,     0,     0,    54,
       0,  1307,     0,     0,     0,     0,     0,    18,     0,     0,
       0,  1308,     0,   264,  1656,     0,     0,     0,    21,    33,
       0,     0,     0,  1309,   698,   151,   840,   151,     0,     0,
       0,    26,     0,     0,    28,    29,     0,     0,   417,     0,
       0,     0,     0,   459,   626,   627,     0,     0,    31,     0,
      54,     0,     0,     0,     0,     0,     0,     0,    32,    54,
       0,   264,     0,     0,     0,     0,    33,     0,   456,    54,
      34,     0,    54,     0,     0,     0,   508,     0,   456,   456,
     456,     0,  1145,     0,    54,     0,     0,     0,     0,   527,
       0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  -419,     8,     9,  -419,  -419,    12,
     253,     0,     0,     0,     0,     0,    14,     0,    54,    54,
      54,    54,     0,  1145,  1145,  1145,    54,     0,     0,     0,
      16,     0,    17,    18,    54,    54,   151,     0,    54,    20,
     158,   158,   158,   456,  -419,     0,     0,    54,    23,     0,
     694,     0,    54,     0,     0,    54,     0,    26,     0,     0,
     134,   135,   145,     8,     9,    10,     0,     0,    13,     0,
       0,     0,     0,     0,   695,     0,     0,     0,     0,     0,
      79,     0,     0,     0,   696,     0,     0,     0,     0,    54,
       0,    18,  -419,     0,     0,     0,   697,   698,     0,     0,
       0,     0,    21,     0,     0,     0,     0,    79,    79,     0,
      79,     0,    79,     0,     0,    26,     0,     0,    28,    29,
       0,    79,     0,   145,     8,     9,    10,   212,    12,   213,
       0,     0,   200,     0,    79,    14,    79,   634,     0,   634,
       0,     0,   201,     0,     0,     0,     0,     0,     0,    16,
      33,    17,    18,     0,   202,   634,   634,   634,    20,     0,
     274,     0,     0,    21,     0,     0,     0,    23,     0,     0,
     634,     0,     0,     0,     0,     0,    26,     0,     0,    28,
      29,     0,     0,   214,     0,     0,   652,   653,   654,   655,
     656,   657,   658,    31,   659,   660,   661,   662,   663,   664,
     665,   666,   667,    32,     0,     0,     0,     0,     0,     0,
       0,    33,     0,     0,     0,    34,    79,   264,     0,     0,
       0,     0,    79,    79,     0,     0,     0,   274,    79,   634,
       0,    79,    79,    79,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     8,     9,     0,    79,     0,   563,
       0,    79,    54,     0,     0,     0,     0,    79,    79,   752,
     753,   754,   755,   756,   757,   758,   759,   760,   761,   762,
     763,     0,    18,     0,     0,     0,    79,    79,    79,     0,
       0,   145,     8,     9,    10,   173,    12,    13,     0,   694,
       0,   848,     0,    14,     0,     0,    26,     0,   873,   134,
     135,   417,     0,   879,     0,    79,     0,    16,   417,    17,
      18,     0,     0,  1501,     0,     0,    20,    54,     0,     0,
       0,    21,     0,  1502,     0,    23,     0,     0,     0,     0,
       0,     0,   903,     0,    26,  1503,   698,    28,    29,   909,
       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
       0,    31,     0,     0,     0,     0,     0,    54,    54,   158,
       0,    32,     0,     0,   264,   272,     0,  1142,     0,    33,
       0,     0,     0,    34,   145,   131,   132,    10,     0,     0,
     563,   634,   919,   920,     0,   921,    54,     0,     0,   456,
      54,    54,   456,   456,   456,     0,     0,     0,    54,     0,
       0,     0,     0,    18,     0,    54,     0,  1355,     8,  1166,
      10,   212,    12,   213,    21,     0,     0,     0,     0,    14,
       0,     0,     0,     0,     0,     0,    54,    26,     0,     0,
      28,    29,     0,    16,     0,    17,    18,     0,     0,     0,
       0,     0,    20,     0,    31,   718,     0,    21,   131,   132,
      79,    23,   222,   223,    32,     0,     0,     0,     0,    14,
      26,     0,    33,    28,    29,   718,    34,     0,     0,  1357,
       0,     0,     0,     0,     0,     0,    18,    31,  1020,  1021,
       0,     0,    20,  1020,     0,     0,     0,    32,     0,     0,
       0,    23,     0,   694,     0,    33,     0,     0,     0,  1170,
      26,    79,     0,   134,   135,     0,     0,     0,     0,     0,
      79,     0,     0,     0,     0,     0,     0,   695,     0,     0,
      79,     0,     0,    79,     0,     0,     0,   696,     0,     0,
       0,     0,     0,     0,     0,    79,     0,     0,     0,   704,
     698,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     634,   634,   634,     0,     0,     0,   456,   264,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,
      79,    79,    79,     0,     0,     0,     0,    79,     0,     0,
       0,     0,     0,     0,     0,    79,    79,     0,     0,    79,
       0,    79,    79,    79,     0,     0,     0,     0,    79,     0,
       0,     0,     0,    79,     0,     0,    79,     0,     0,     0,
       0,     0,     0,     0,  1137,   165,     8,     9,     0,     0,
      12,    13,     0,     0,     0,     0,     0,    14,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   211,
      79,    16,     0,    17,    18,     0,     0,     0,     0,  1153,
      20,     0,    54,    54,    54,   158,   158,   158,   456,    23,
     264,     0,    54,   264,  1142,  1142,  1142,     0,    26,     0,
     272,   134,   135,   145,     8,     9,    10,   212,    12,   213,
       0,     0,     0,     0,     0,    14,     0,     0,     0,  1193,
       0,  1195,     0,     0,     0,   158,    54,     0,    54,    16,
       0,    17,    18,    54,    54,     0,    54,   983,    20,     0,
       0,     0,     0,    21,     0,     0,     0,    23,     0,     0,
       0,     0,     0,     8,     9,     0,    26,    12,    13,    28,
      29,     0,     0,  1666,    14,     0,   165,   165,   165,     0,
       0,     0,     0,    31,     0,     0,     0,     0,    16,     0,
      17,    18,     0,    32,     0,     0,     0,    20,     0,     0,
       0,    33,   211,     0,     0,    34,    23,  1233,  1234,   718,
    1236,     0,     0,     0,     0,    26,     0,     0,   134,   135,
     677,   211,   211,   520,     0,     0,     0,     0,   456,   456,
     456,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1257,     0,     0,    79,     0,     0,     0,   131,   132,     0,
     211,   222,   223,     0,   678,     0,     0,     0,    14,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
      54,    54,   456,   456,   456,    18,     0,    54,    54,     0,
       0,    20,     0,     0,     0,     0,     0,     0,     0,     0,
      23,     0,   694,     0,     0,     0,     0,     0,     0,    26,
       0,     0,   134,   135,     0,     0,     0,     0,    79,     0,
      54,     0,     0,     0,     0,     0,   695,   145,     8,     9,
      10,   173,    12,    13,     0,     0,   696,     0,     0,    14,
       0,   264,   272,   607,     0,     0,     0,     0,   697,   698,
      54,     0,     0,    16,     0,    17,    18,     0,    79,    79,
      79,     0,    20,     0,  1312,     0,   274,    21,  1144,     0,
       0,    23,     0,     0,     0,     0,     0,     0,     0,     0,
      26,     0,     0,    28,    29,     0,     0,    79,     0,     0,
       0,    79,    79,   701,   701,   701,     0,    31,     0,    79,
       0,   145,     8,     9,    10,     0,    79,    32,     0,     0,
       0,     0,     0,     0,     0,    33,     0,     0,     0,    34,
     145,     8,     9,    10,   212,    12,   213,    79,     0,     0,
      18,     0,    14,     0,     0,    54,     0,     0,   264,     0,
      54,    21,     0,    54,     0,     0,    16,     0,    17,    18,
       0,     0,     0,     0,    26,    20,   211,    28,    29,     0,
      21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
       0,   515,     0,    26,     0,     0,    28,    29,     0,  1417,
       0,   516,     0,     0,     0,     0,     0,     0,     0,    33,
      31,     0,     0,   517,     0,     0,     0,     0,     0,     0,
      32,     0,     0,     0,     0,     0,     0,     0,    33,     0,
       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   836,     0,   836,   836,   701,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1440,     0,
     211,   211,     0,     0,   211,     0,   520,   520,   520,   871,
       0,     8,     9,   211,   173,    12,    13,     0,   211,   718,
     488,   211,    14,     0,     0,     0,     0,     0,  1448,     0,
       0,     0,     0,     0,     0,     0,    16,     0,    17,    18,
       0,  1454,     0,     0,     0,    20,     0,    54,    54,    54,
       0,     0,     0,     0,    23,     0,   694,     0,     0,     0,
       0,     0,     0,    26,     0,     0,   134,   135,  1470,     0,
       0,     0,  1471,     0,   653,   654,   655,   656,   657,   658,
    1501,   659,   660,   661,   662,   663,   664,   665,   666,   667,
    1502,     0,     0,     0,     0,     0,     0,     0,   209,     0,
       0,     0,  1503,   698,  1142,     0,     0,  1493,     0,     0,
       0,     0,     0,    79,    79,    79,    79,    79,    79,     0,
       0,   267,     0,    79,   275,  1144,  1144,  1144,     0,     0,
       0,  1318,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1142,  1142,  1142,   267,     0,
     381,     0,     0,     0,     0,     0,    79,    79,    54,    79,
    1537,  1538,     0,     0,    79,    79,     0,    79,     0,     0,
       0,     0,   992,   145,     8,     9,    10,   221,   222,   223,
       0,     0,     0,     0,     0,    14,   701,   701,   701,     0,
       0,     0,     0,     0,     0,   701,     0,  1560,  1561,     0,
       0,     0,    18,  1563,     0,     0,     0,     0,    20,     0,
       0,     0,     0,    21,     0,     0,     0,    23,   211,   694,
       0,   209,     0,     0,     0,     0,    26,     0,     0,    28,
      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     209,   209,   209,   200,     0,     0,     0,     0,     0,     0,
     526,     8,     9,   201,   212,    12,   213,   145,     8,     9,
      10,    33,    14,   253,     0,  1669,     0,     0,     0,   209,
       0,     0,     0,     0,     0,     0,    16,     0,    17,    18,
       0,     0,     0,   836,     0,    20,    18,     0,     0,     0,
      79,    79,    79,     0,    23,     0,   275,    21,    79,    79,
       0,     0,     0,    26,     0,     0,   134,   135,     0,     0,
      26,     0,  1677,    28,    29,     0,   267,     0,     0,     0,
       0,     0,     0,   836,   836,  1136,     0,   200,     0,     0,
       0,    79,     0,  1136,     0,     0,     0,   201,     0,     0,
       0,     0,     0,     0,     0,    33,     8,     9,     0,   202,
       0,    13,   211,   274,     0,   871,   211,   211,   871,   871,
     871,    79,     0,     0,   211,     0,     0,     0,     0,     0,
       0,   211,     0,     0,    18,     0,     0,     0,   145,     8,
       9,    10,     0,     0,    13,     0,     0,   145,     8,     9,
      10,   694,     0,   563,     0,     0,     0,     0,    26,     0,
       0,   134,   135,     0,     0,     0,     0,    18,   267,   275,
     607,   607,   607,     0,     0,  1501,    18,     0,    21,     0,
       0,     0,     0,   701,     0,  1502,     0,    21,   267,   275,
       0,    26,     0,     0,    28,    29,     0,  1503,   698,     0,
      26,     0,     0,    28,    29,     0,    79,     0,   515,     0,
       0,    79,     0,     0,    79,     0,     0,   200,   516,     0,
       0,     0,     0,     0,     0,   209,    33,   201,     0,     0,
     517,     0,     0,     0,   491,    33,     0,     0,     0,   202,
       0,   270,     8,     9,    10,     0,     0,    13,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   701,   701,     0,
       0,   701,     0,     0,     0,     0,     0,     0,     0,     0,
      18,     0,   701,     0,     0,     0,   701,   701,   701,     0,
       0,    21,   701,   145,     8,     9,    10,     0,     0,     0,
       0,     0,     0,   209,    26,   209,   209,    28,   271,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   209,
     209,   867,    18,   209,     0,   209,   209,   209,   209,     0,
       0,   868,   209,    21,     0,     0,     0,   209,     0,    33,
     209,     0,     0,   869,     0,     0,    26,     0,     0,    28,
      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,     0,     0,     0,     0,    79,    79,
      79,     0,     0,   201,     0,     0,     0,     0,     0,     0,
       0,    33,     0,     0,     0,   202,     0,     0,   836,   836,
     836,  1136,  1136,  1136,  1310,     0,     0,     0,   836,     0,
    1136,  1136,  1136,     0,   270,     8,     9,    10,     0,     0,
       0,     0,   871,   871,   871,     0,     0,     0,     0,   145,
     131,  1343,    10,     0,     0,  1144,     0,     0,     0,     0,
     738,   165,     0,    18,     0,     0,     0,     0,     0,   211,
       0,     0,     0,     0,    21,     0,     0,     0,    18,     0,
       0,     0,     0,  1355,  1356,     9,    10,    26,     0,    21,
      28,   271,     0,     0,     0,     0,  1144,  1144,  1144,     0,
       0,     0,    26,     0,   867,    28,    29,     0,     0,    79,
       0,     0,     0,     0,   868,     0,     0,     0,     0,   155,
       0,     0,    33,    21,   992,   992,   869,   992,     0,   156,
       0,     0,   387,   391,     0,     0,    26,    33,   701,    28,
      29,   157,     0,     0,     0,  1357,   701,   267,   275,     0,
       0,     0,     0,   200,   701,   701,   701,     0,     0,     0,
       0,   824,   491,   201,     0,     0,     0,   209,     0,     0,
       0,    33,     0,     0,     0,   202,     0,     0,  1520,  1521,
       9,    10,     0,     0,     0,     0,     0,     0,     0,  1520,
     131,   132,    10,     0,     0,   836,   836,   836,  1310,  1310,
    1310,     0,     0,   836,   836,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   492,    21,   871,
     871,   871,   871,   871,     0,     0,     0,     0,     0,    21,
       0,    26,   209,     0,    28,    29,   211,     0,     0,     0,
    1522,     0,    26,     0,     0,    28,    29,     0,   200,     0,
       0,  1522,     0,     0,     0,     0,     0,     0,   201,    31,
       0,     0,     0,     0,     0,     0,    33,     0,     0,    32,
     202,     0,   209,   209,  1134,     0,     0,    33,     0,   267,
     275,    34,  1134,     0,     0,     0,     0,     0,     0,   491,
       0,     0,     0,     0,     0,     0,   928,     0,     0,     0,
       0,   209,     0,     0,   209,   209,   209,   209,   209,   209,
     526,     0,     0,   209,     8,     9,     0,   173,    12,    13,
     209,     0,   824,   488,     0,    14,     0,     0,  1310,  1310,
       0,  1310,     0,     0,     0,   871,     0,     0,     0,    16,
     275,    17,    18,     0,     0,     0,     0,   491,    20,     0,
       0,   211,     0,   491,     0,   491,   491,    23,     0,     0,
       0,     0,     0,     0,   637,     0,    26,     0,     0,   134,
     135,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   491,     0,     0,     0,     0,     0,     0,   491,
       0,     0,  1310,  1310,  1310,  1310,  1310,     0,     0,   491,
     747,   748,   749,   750,   751,   752,   753,   754,   755,   756,
     757,   758,   759,   760,   761,   762,   763,     0,  1052,  1054,
    1055,  1056,     0,  1058,  1059,  1060,  1061,  1062,  1063,  1064,
    1065,  1066,  1067,  1068,  1069,  1070,  1071,  1072,  1073,  1074,
    1075,  1076,     8,     9,   791,   173,    12,    13,     0,     0,
    1310,  1619,     0,    14,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    16,     0,    17,
      18,     0,   267,   275,   267,     0,    20,     0,     0,     0,
       0,     0,     0,  1694,     0,    23,     0,     0,     0,     0,
       0,     0,     0,     0,    26,     0,     0,   134,   135,     0,
       0,   824,     0,   211,     0,   211,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     491,     0,   791,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   491,  1695,   742,   743,   744,   745,
     746,   747,   748,   749,   750,   751,   752,   753,   754,   755,
     756,   757,   758,   759,   760,   761,   762,   763,     0,     0,
     520,     0,     0,     0,     0,     0,     0,   209,   209,   209,
     209,   209,  1134,   209,     0,  1311,     0,   209,   267,  1134,
    1134,  1134,     0,     0,     0,   275,     0,     0,     0,     0,
       0,   209,   209,   209,     8,     9,     0,     0,    12,   253,
       0,   520,   520,   520,     0,    14,     0,     0,     0,     0,
       0,     0,     0,     0,   211,     0,     0,     0,   209,    16,
       0,    17,    18,     0,     0,     0,     0,  1216,    20,     0,
       0,     0,     0,   926,     0,   927,     0,    23,     0,     0,
     930,   931,   933,   934,   935,     0,    26,     0,     0,   134,
     135,     0,     0,   637,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   824,   491,   953,     0,     0,     0,
       0,     0,     0,     0,     0,   106,     0,     0,     0,   491,
       0,   491,     0,   491,   125,   106,     0,     0,     0,     0,
       0,     0,   106,   106,     0,   106,     0,     0,     0,   982,
       0,     0,     0,     0,     0,     0,     0,     0,     8,     9,
       0,     0,    12,    13,     0,     0,     0,     0,  1012,    14,
       0,     0,     0,     0,  1272,  1012,     0,     0,     0,   242,
       0,     0,     0,    16,     0,    17,    18,     0,     0,     0,
       0,     0,    20,     0,   209,   209,   209,   209,   209,  1134,
       0,    23,   209,   209,     0,     0,     0,   491,     0,     0,
      26,     0,     0,   134,   135,     0,     0,     0,   209,   209,
     209,   209,   209,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   209,     0,     0,     0,   409,
       0,   125,     0,     0,     0,   491,     0,     0,   106,   106,
       0,     0,     0,     0,     0,     0,   526,   106,   106,     0,
       0,   106,   106,   106,     0,   441,   106,   106,   106,     0,
       0,     0,     0,     0,     0,   824,   824,   748,   749,   750,
     751,   752,   753,   754,   755,   756,   757,   758,   759,   760,
     761,   762,   763,     0,     0,     0,     0,  1342,     0,     0,
       0,   699,   699,   699,     0,  1012,     0,     0,     0,     0,
       0,     0,     0,  1012,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   209,   209,  1311,
     209,     0,     0,     0,   209,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   824,   824,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   242,   106,   749,   750,
     751,   752,   753,   754,   755,   756,   757,   758,   759,   760,
     761,   762,   763,     0,     0,   492,     0,     0,     0,     0,
     106,   492,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   209,   209,  1134,   209,   209,     0,     0,     0,     0,
       0,     0,     0,  1423,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   106,   491,     0,   491,     0,   491,     0,
     824,     0,   699,     0,   699,   699,   699,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   209,
       0,     0,     0,     0,  1228,     0,     0,     0,     0,     0,
       0,   824,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   106,     0,   106,   106,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1458,     0,     0,   953,     0,
       0,     0,     0,     0,   492,     0,     0,     0,  1012,     0,
       0,     0,   209,     0,   209,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   824,   106,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   106,     0,   106,     0,     0,
       0,     0,   491,     0,     0,   106,     0,     0,   106,  1134,
       0,     0,     0,   791,     0,  1285,     0,     0,     0,     0,
     106,     0,     0,     0,   824,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1516,  1517,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1134,  1134,  1134,  1012,     0,     0,     0,     0,     0,     0,
       0,     0,  1012,   209,   824,     0,     0,     0,     0,     0,
       0,  1325,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   699,   699,   699,     0,     0,     0,
       0,     0,     0,  1029,     0,     0,     0,     0,     0,     0,
    1569,     0,     0,     0,     0,     0,     0,     0,     0,   242,
     893,     0,     0,     0,     0,   492,     0,   492,     0,     0,
       0,     0,     0,     0,     0,   106,     0,  1389,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1626,  1627,     0,     0,     0,
       0,     0,     0,    18,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   106,     0,   106,
       0,     0,  1645,     0,     0,     0,     0,     0,     0,     0,
       0,   699,     0,     0,     0,     0,  1012,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,     0,
    1683,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   699,   699,   699,     0,     0,     0,     0,     0,     0,
    1012,  1029,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   106,     0,     0,     0,     0,   491,     0,     0,
       0,     0,     0,   106,   106,     0,   106,   106,     0,     0,
       0,     0,   492,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1733,     0,     0,   492,   742,   743,   744,   745,
     746,   747,   748,   749,   750,   751,   752,   753,   754,   755,
     756,   757,   758,   759,   760,   761,   762,   763,   742,   743,
     744,   745,   746,   747,   748,   749,   750,   751,   752,   753,
     754,   755,   756,   757,   758,   759,   760,   761,   762,   763,
       0,   699,     0,  1395,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
       0,  1717,     0,     0,   106,   125,     0,     0,     0,     0,
       0,     0,     0,     0,   242,     0,     0,     0,     0,     0,
       0,     0,     0,  1325,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   893,
       0,     0,     0,   824,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   699,   699,     0,     0,   699,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     699,     0,     0,     0,  1029,  1029,  1029,     0,     0,     0,
     699,     0,     0,     0,  1012,     0,     0,     0,     0,   741,
       0,     0,   492,   742,   743,   744,   745,   746,   747,   748,
     749,   750,   751,   752,   753,   754,   755,   756,   757,   758,
     759,   760,   761,   762,   763,     0,     0,     0,     0,     0,
       0,   893,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   791,     0,
     106,   106,   106,   106,     0,     0,     0,     0,     0,     0,
    1206,     0,     0,   106,   742,   743,   744,   745,   746,   747,
     748,   749,   750,   751,   752,   753,   754,   755,   756,   757,
     758,   759,   760,   761,   762,   763,   699,   699,   699,   699,
     699,   699,   699,     0,     0,     0,   699,     0,  1029,  1029,
    1029,  1754,   742,   743,   744,   745,   746,   747,   748,   749,
     750,   751,   752,   753,   754,   755,   756,   757,   758,   759,
     760,   761,   762,   763,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   106,   106,     0,
       0,   106,     0,     0,     0,     0,  1767,     0,   270,     8,
       9,    10,   106,    12,   314,   315,   316,   317,     0,   318,
      14,     0,   106,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,    18,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,     0,     0,   328,   329,   330,   331,
     332,    26,     0,   637,    28,   271,   699,     0,  -209,   382,
       0,     0,     0,     0,   699,   335,     0,     0,   336,     0,
       0,     0,   699,   699,   699,     0,   337,   338,   339,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,     0,
     343,     0,     0,     0,     0,     0,     0,     0,  1631,     0,
    -510,  -510,  -510,  -510,  -510,  -510,  -510,   344,     0,     0,
    -510,     0,  -510,   699,   699,   699,   699,   699,   699,     0,
       0,   699,   699,  -510,     0,  -510,     0,     0,     0,  -510,
       0,     0,     0,     0,     0,  -510,     0,     0,     0,     0,
    -510,     0,     0,     0,  -510,   893,  -510,     0,   106,     0,
       0,   106,     0,  -510,     0,     0,  -510,  -510,  -510,  -510,
    -510,     0,  -510,  -510,  -510,  -510,  -510,  -510,  -510,  -510,
    -510,  -510,  -510,  -510,  -510,  -510,  -510,  -510,  -510,  -510,
    -510,  -510,  -510,  -510,  -510,     0,  -510,  -510,  -510,     0,
    -510,  -510,  -510,  -510,  -510,     0,     0,     0,     0,     0,
    1632,  -510,     0,     0,     0,     0,  -510,  -510,  -510,     0,
    -510,     0,     0,     0,   106,   106,     0,   106,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   106,     0,
       0,     0,     0,     0,     0,     0,   106,     0,     0,     0,
       0,     0,     0,     0,   106,   106,   699,   699,     0,   699,
       0,   270,     8,     9,    10,     0,    12,   314,   315,   316,
     317,     0,   318,    14,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   893,     0,    16,   319,    17,
      18,    19,     0,   320,   321,   322,    20,     0,   323,   324,
     325,    21,   326,   327,     0,    23,     0,   694,     0,   328,
     329,   330,   331,   332,    26,     0,     0,    28,   271,     0,
     699,   699,   699,   699,   699,     0,     0,   893,   335,     0,
       0,  1025,     0,     0,     0,     0,     0,     0,     0,   337,
     338,  1026,     0,     0,     0,     0,     0,   340,   341,   342,
       0,     0,     0,  1027,   698,     0,     0,     0,   106,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     344,     0,     0,     0,     0,     0,     0,  1582,   699,  -927,
    -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,     0,
    -927,  -927,  -927,     0,  -927,  -927,  -927,  -927,  -927,  -927,
    -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,
       0,  -927,  -927,  -927,  -927,     0,  -927,  -927,  -927,  -927,
    -927,  -927,  -927,  -927,  -927,     0,     0,  -927,  -927,  -927,
    -927,  -927,  -927,     0,     0,  -927,  -927,  -927,     0,  -927,
    -927,     0,     0,     0,     0,     0,  -927,     0,     0,  -927,
       0,     0,     0,     0,   106,     0,   106,  -927,  -927,  -927,
       0,     0,     0,     0,     0,  -927,  -927,  -927,     0,     0,
       0,  -927,     0,  -927,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1583,  -927,  1545,
       0,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,
    -927,     0,  -927,  -927,  -927,     0,  -927,  -927,  -927,  -927,
    -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,  -927,
    -927,  -927,     0,  -927,  -927,  -927,  -927,     0,  -927,  -927,
    -927,  -927,  -927,  -927,  -927,  -927,  -927,     0,     0,  -927,
    -927,  -927,  -927,  -927,  -927,     0,     0,  -927,  -927,  -927,
       0,  -927,  -927,     0,     0,     0,     0,     0,  -927,     0,
       0,  -927,     0,     0,     0,     0,     0,     0,     0,  -927,
    -927,  -927,     0,     0,     0,     0,     0,  -927,  -927,  -927,
       0,     0,     0,  -927,   629,  -927,   270,     8,     9,    10,
     173,    12,   314,   315,   316,   317,   488,   318,    14,     0,
    -927,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,    18,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,   694,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,   271,  -345,     0,     0,   382,     0,     0,
       0,     0,     0,   335,     0,     0,  1025,     0,     0,     0,
       0,     0,     0,     0,   337,   338,  1026,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,     0,  1027,   698,
     629,     0,   145,     8,     9,    10,   173,    12,   314,   315,
     316,   317,   488,   318,    14,   344,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    16,   319,
      17,    18,    19,     0,   320,   321,   322,    20,     0,   323,
     324,   325,    21,   326,   327,     0,    23,     0,   694,     0,
     328,   329,   330,   331,   332,    26,     0,     0,    28,    29,
    -345,     0,     0,   382,     0,     0,     0,     0,     0,   335,
       0,     0,  1139,     0,     0,     0,     0,     0,     0,     0,
     337,   338,  1140,     0,     0,     0,     0,     0,   340,   341,
     342,     0,     0,     0,  1141,   698,   487,     0,   270,     8,
       9,    10,   173,    12,   314,   315,   316,   317,   488,   318,
      14,   344,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,    18,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,     0,     0,   328,   329,   330,   331,
     332,    26,     0,     0,    28,   271,     0,     0,     0,   382,
       0,     0,     0,     0,     0,   335,     0,     0,   336,     0,
       0,     0,     0,     0,     0,     0,   337,   338,   339,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,   956,
     343,   270,     8,     9,    10,   173,    12,   314,   315,   316,
     317,     0,   318,    14,     0,  -840,     0,   344,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    16,   319,    17,
      18,    19,     0,   320,   321,   322,    20,     0,   323,   324,
     325,    21,   326,   327,     0,    23,     0,     0,     0,   328,
     329,   330,   331,   332,    26,     0,     0,    28,   271,  1728,
       0,  -829,   382,     0,     0,     0,     0,     0,   335,     0,
       0,   336,     0,     0,     0,     0,     0,     0,     0,   337,
     338,   339,     0,     0,     0,     0,     0,   340,   341,   342,
       0,     0,   822,   343,   944,   945,   946,    10,     0,    12,
     504,   315,   316,   317,     0,   318,    14,     0,     0,     0,
     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      16,   319,    17,     0,    19,     0,   320,   321,   322,    20,
       0,   323,   324,   325,    21,   326,   327,     0,    23,     0,
       0,     0,   328,   329,   330,   331,   332,    26,     0,     0,
     947,   948,   823,     0,     0,   382,     0,     0,     0,     0,
       0,   335,     0,     0,   336,     0,     0,     0,     0,     0,
       0,     0,   337,   338,   339,     0,     0,     0,     0,     0,
     340,   341,   342,     0,     0,     0,   343,   949,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1124,   344,   629,     0,   270,     8,     9,    10,
       0,    12,   314,   315,   316,   317,     0,   318,    14,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,    18,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,     0,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,   271,  -345,     0,     0,   382,     0,     0,
       0,     0,     0,   335,     0,     0,   630,     0,     0,     0,
       0,     0,     0,     0,   337,   338,   631,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,   822,   632,   944,
     945,   946,    10,     0,    12,   504,   315,   316,   317,     0,
     318,    14,     0,     0,     0,   344,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    16,   319,    17,     0,    19,
       0,   320,   321,   322,    20,     0,   323,   324,   325,    21,
     326,   327,     0,    23,     0,     0,     0,   328,   329,   330,
     331,   332,    26,     0,     0,   947,   948,   823,     0,     0,
     382,     0,     0,     0,     0,     0,   335,     0,     0,   336,
       0,     0,     0,     0,     0,     0,     0,   337,   338,   339,
       0,     0,     0,     0,     0,   340,   341,   342,     0,     0,
       0,   343,   949,   822,     0,   270,     8,     9,    10,     0,
      12,   504,   315,   316,   317,     0,   318,    14,   344,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    16,   319,    17,     0,    19,     0,   320,   321,   322,
      20,     0,   323,   324,   325,    21,   326,   327,     0,    23,
       0,     0,     0,   328,   329,   330,   331,   332,    26,     0,
       0,    28,   271,   823,     0,     0,   382,     0,     0,     0,
       0,     0,   335,     0,     0,   336,     0,     0,     0,     0,
       0,     0,     0,   337,   338,   339,     0,     0,     0,     0,
       0,   340,   341,   342,     0,     0,     0,   343,   822,     0,
     944,   945,   946,    10,  1321,    12,   504,   315,   316,   317,
       0,   318,    14,     0,   344,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    16,   319,    17,     0,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,     0,    23,     0,     0,     0,   328,   329,
     330,   331,   332,    26,     0,     0,   947,   948,   823,     0,
       0,   382,     0,     0,     0,     0,     0,   335,     0,     0,
     336,     0,     0,     0,     0,     0,     0,     0,   337,   338,
     339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,   822,   343,   944,   945,   946,    10,     0,    12,   504,
     315,   316,   317,     0,   318,    14,     0,     0,  -514,   344,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     319,    17,     0,    19,     0,   320,   321,   322,    20,     0,
     323,   324,   325,    21,   326,   327,     0,    23,     0,     0,
       0,   328,   329,   330,   331,   332,    26,     0,     0,   947,
     948,   823,     0,     0,   382,     0,     0,     0,     0,     0,
     335,     0,     0,   336,     0,     0,     0,     0,     0,     0,
       0,   337,   338,   339,     0,     0,     0,     0,     0,   340,
     341,   342,     0,     0,   629,   343,   145,     8,     9,    10,
       0,    12,   314,   315,   316,   317,     0,   318,    14,     0,
       0,  1436,   344,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,    18,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,     0,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,    29,  -345,     0,     0,   382,     0,     0,
       0,     0,     0,   335,     0,     0,  1710,     0,     0,     0,
       0,     0,     0,     0,   337,   338,  1711,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,   822,  1712,   270,
       8,     9,    10,     0,    12,   504,   315,   316,   317,     0,
     318,    14,     0,     0,     0,   344,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    16,   319,    17,     0,    19,
       0,   320,   321,   322,    20,     0,   323,   324,   325,    21,
     326,   327,     0,    23,     0,     0,     0,   328,   329,   330,
     331,   332,    26,     0,     0,    28,   271,   823,     0,     0,
     382,     0,     0,     0,     0,     0,   335,     0,     0,   336,
       0,     0,     0,     0,     0,     0,     0,   337,   338,   339,
       0,     0,     0,     0,     0,   340,   341,   342,     0,     0,
     956,   343,   270,     8,     9,    10,     0,    12,   504,   315,
     316,   317,     0,   318,    14,     0,     0,     0,   344,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    16,   319,
      17,     0,    19,     0,   320,   321,   322,    20,     0,   323,
     324,   325,    21,   326,   327,     0,    23,     0,     0,     0,
     328,   329,   330,   331,   332,    26,     0,     0,    28,   271,
       0,     0,     0,   382,  -829,     0,     0,     0,     0,   335,
       0,     0,   336,     0,     0,     0,     0,     0,     0,     0,
     337,   338,   339,     0,     0,     0,     0,     0,   340,   341,
     342,     0,     0,   956,   343,   270,     8,     9,    10,     0,
      12,   504,   315,   316,   317,     0,   318,    14,     0,     0,
       0,   344,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    16,   319,    17,     0,    19,     0,   320,   321,   322,
      20,     0,   323,   324,   325,    21,   326,   327,     0,    23,
       0,     0,     0,   328,   329,   330,   331,   332,    26,     0,
       0,    28,   271,     0,     0,     0,   382,     0,     0,     0,
       0,     0,   335,     0,     0,   336,     0,     0,     0,     0,
       0,     0,     0,   337,   338,   339,     0,     0,     0,     0,
       0,   340,   341,   342,     0,     0,  1051,   343,   270,     8,
       9,    10,     0,    12,   504,   315,   316,   317,     0,   318,
      14,     0,  -829,     0,   344,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,     0,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,     0,     0,   328,   329,   330,   331,
     332,    26,     0,     0,    28,   271,     0,     0,     0,   382,
       0,     0,     0,     0,     0,   335,     0,     0,   336,     0,
       0,     0,     0,     0,     0,     0,   337,   338,   339,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,  1053,
     343,   270,     8,     9,    10,     0,    12,   504,   315,   316,
     317,     0,   318,    14,     0,     0,     0,   344,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    16,   319,    17,
       0,    19,     0,   320,   321,   322,    20,     0,   323,   324,
     325,    21,   326,   327,     0,    23,     0,     0,     0,   328,
     329,   330,   331,   332,    26,     0,     0,    28,   271,     0,
       0,     0,   382,     0,     0,     0,     0,     0,   335,     0,
       0,   336,     0,     0,     0,     0,     0,     0,     0,   337,
     338,   339,     0,     0,     0,     0,     0,   340,   341,   342,
       0,     0,  1682,   343,   270,     8,     9,    10,     0,    12,
     504,   315,   316,   317,     0,   318,    14,     0,     0,     0,
     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      16,   319,    17,     0,    19,     0,   320,   321,   322,    20,
       0,   323,   324,   325,    21,   326,   327,     0,    23,     0,
       0,     0,   328,   329,   330,   331,   332,    26,     0,     0,
      28,   271,     0,     0,     0,   382,     0,     0,     0,     0,
       0,   335,     0,     0,   336,     0,     0,     0,     0,     0,
       0,     0,   337,   338,   339,     0,     0,     0,     0,     0,
     340,   341,   342,     0,     0,     0,   343,   270,     8,     9,
      10,     0,    12,   504,   315,   316,   317,     0,   318,    14,
       0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    16,   319,    17,     0,    19,     0,   320,
     321,   322,    20,     0,   323,   324,   325,    21,   326,   327,
       0,    23,     0,     0,     0,   328,   329,   330,   331,   332,
      26,     0,     0,    28,   271,     0,     0,     0,   382,     0,
       0,     0,     0,     0,   335,     0,     0,   336,     0,     0,
       0,     0,     0,     0,     0,   337,   338,   339,     0,     0,
       0,     0,     0,   340,   341,   342,     0,     0,     0,   343,
     270,     8,     9,    10,     0,    12,   504,   315,   316,   317,
       0,   318,    14,     0,     0,     0,   344,   505,     0,     0,
       0,     0,     0,     0,     0,     0,    16,   319,    17,     0,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,     0,    23,     0,     0,     0,   328,   329,
     330,   331,   332,    26,     0,     0,    28,   271,     0,     0,
       0,   382,     0,     0,     0,     0,     0,   335,     0,     0,
     336,     0,     0,     0,     0,     0,     0,     0,   337,   338,
     339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,     0,   343,   270,     8,     9,    10,     0,    12,   504,
     315,   316,   317,     0,   318,    14,     0,     0,     0,   344,
     877,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     319,    17,     0,    19,     0,   320,   321,   322,    20,     0,
     323,   324,   325,    21,   326,   327,     0,    23,     0,     0,
       0,   328,   329,   330,   331,   332,    26,     0,     0,    28,
     271,     0,     0,     0,   382,     0,     0,     0,     0,     0,
     335,     0,     0,   336,     0,     0,     0,     0,     0,     0,
       0,   337,   338,   339,     0,     0,     0,     0,     0,   340,
     341,   342,     0,     0,     0,   343,   270,     8,     9,    10,
       0,    12,   504,   315,   316,   317,     0,   318,    14,     0,
       0,     0,   344,   995,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,     0,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,     0,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,   271,     0,     0,     0,   382,     0,     0,
       0,     0,     0,   335,     0,     0,   336,     0,     0,     0,
       0,     0,     0,     0,   337,   338,   339,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,     0,   343,   270,
       8,     9,    10,     0,    12,   504,   315,   316,   317,     0,
     318,    14,     0,     0,     0,   344,  1015,     0,     0,     0,
       0,     0,     0,     0,     0,    16,   319,    17,     0,    19,
       0,   320,   321,   322,    20,     0,   323,   324,   325,    21,
     326,   327,     0,    23,     0,     0,     0,   328,   329,   330,
     331,   332,    26,     0,     0,    28,   271,     0,     0,     0,
     382,     0,     0,     0,     0,     0,   335,     0,     0,   336,
       0,     0,     0,     0,     0,     0,     0,   337,   338,   339,
       0,     0,     0,     0,     0,   340,   341,   342,     0,     0,
       0,   343,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   344,  1259,
    1586,  1587,  1588,    10,   173,    12,   314,   315,   316,   317,
       0,   318,    14,  1589,     0,  1590,  1591,  1592,  1593,  1594,
    1595,  1596,  1597,  1598,  1599,    15,    16,   319,    17,    18,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,  1600,    23,  1601,     0,     0,   328,   329,
     330,   331,   332,    26,     0,     0,  1602,   271,  1215,     0,
    1603,   382,     0,     0,     0,     0,     0,   335,     0,     0,
     336,     0,     0,     0,     0,     0,     0,     0,   337,   338,
     339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,     0,   343,     0,  1604,  1586,  1587,  1588,    10,   173,
      12,   314,   315,   316,   317,     0,   318,    14,  1589,   344,
    1590,  1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,
      15,    16,   319,    17,    18,    19,     0,   320,   321,   322,
      20,     0,   323,   324,   325,    21,   326,   327,  1600,    23,
    1601,     0,     0,   328,   329,   330,   331,   332,    26,     0,
       0,  1602,   271,     0,     0,  1603,   382,     0,     0,     0,
       0,     0,   335,     0,     0,   336,     0,     0,     0,     0,
       0,     0,     0,   337,   338,   339,     0,     0,     0,     0,
       0,   340,   341,   342,     0,     0,     0,   343,     0,  1604,
     270,     8,     9,    10,   173,    12,   314,   315,   316,   317,
     488,   318,    14,     0,   344,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    16,   319,    17,    18,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,     0,    23,     0,   694,     0,   328,   329,
     330,   331,   332,    26,     0,     0,    28,   271,     0,     0,
       0,   382,     0,     0,     0,     0,     0,   335,     0,     0,
    1025,     0,     0,     0,     0,     0,     0,     0,   337,   338,
    1026,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,     0,  1027,   698,   145,     8,     9,    10,   173,    12,
     314,   315,   316,   317,   488,   318,    14,     0,     0,   344,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      16,   319,    17,    18,    19,     0,   320,   321,   322,    20,
       0,   323,   324,   325,    21,   326,   327,     0,    23,     0,
     694,     0,   328,   329,   330,   331,   332,    26,     0,     0,
      28,    29,     0,     0,     0,   382,     0,     0,     0,     0,
       0,   335,     0,     0,  1139,     0,     0,     0,     0,     0,
       0,     0,   337,   338,  1140,     0,     0,     0,     0,     0,
     340,   341,   342,     0,     0,     0,  1141,   698,   145,     8,
       9,    10,     0,    12,   314,   315,   316,   317,     0,   318,
      14,     0,     0,   344,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,    18,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,   694,     0,   328,   329,   330,   331,
     332,    26,     0,     0,    28,    29,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   335,     0,     0,  1139,     0,
       0,     0,     0,     0,     0,     0,   337,   338,  1140,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,     0,
    1141,   698,   270,     8,     9,    10,     0,    12,   314,   315,
     316,   317,     0,   318,    14,     0,     0,   344,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    16,   319,
      17,    18,    19,     0,   320,   321,   322,    20,     0,   323,
     324,   325,    21,   326,   327,     0,    23,     0,     0,     0,
     328,   329,   330,   331,   332,    26,     0,     0,   333,   271,
       0,     0,     0,   334,     0,     0,     0,     0,     0,   335,
       0,     0,   336,     0,     0,     0,     0,     0,     0,     0,
     337,   338,   339,     0,     0,     0,     0,     0,   340,   341,
     342,     0,     0,     0,   343,   270,     8,     9,    10,     0,
      12,   314,   315,   316,   317,     0,   318,    14,     0,     0,
       0,   344,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    16,   319,    17,    18,    19,     0,   320,   321,   322,
      20,     0,   323,   324,   325,    21,   326,   327,     0,    23,
       0,     0,     0,   328,   329,   330,   331,   332,    26,     0,
       0,    28,   271,     0,     0,     0,   382,     0,     0,     0,
       0,     0,   335,     0,     0,   336,     0,     0,     0,     0,
       0,     0,     0,   337,   338,   339,     0,     0,     0,     0,
       0,   340,   341,   342,     0,     0,     0,   343,   270,     8,
       9,    10,     0,    12,   504,   315,   316,   317,     0,   318,
      14,     0,     0,     0,   344,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,    18,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,     0,     0,   328,   329,   330,   331,
     332,    26,     0,     0,    28,   271,     0,     0,     0,   382,
       0,     0,     0,     0,     0,   335,     0,     0,   630,     0,
       0,     0,     0,     0,     0,     0,   337,   338,   631,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,     0,
     632,   270,     8,     9,    10,     0,    12,   504,   315,   316,
     317,     0,   318,    14,     0,     0,     0,   344,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    16,   319,    17,
       0,    19,     0,   320,   321,   322,    20,     0,   323,   324,
     325,    21,   326,   327,     0,    23,     0,     0,     0,   328,
     329,   330,   331,   332,    26,     0,     0,    28,   271,     0,
       0,  1649,   382,     0,     0,     0,     0,     0,   335,     0,
       0,   336,     0,     0,     0,     0,     0,     0,     0,   337,
     338,   339,     0,     0,     0,     0,     0,   340,   341,   342,
       0,     0,     0,   343,   270,     8,     9,    10,   173,    12,
     314,   315,   316,   317,     0,   318,    14,     0,     0,     0,
     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      16,   319,    17,    18,    19,     0,   320,   321,   322,    20,
       0,   323,   324,   325,    21,   326,   327,     0,    23,     0,
       0,     0,   328,   329,   330,   331,   332,    26,     0,     0,
      28,   271,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   335,     0,     0,   336,     0,     0,     0,     0,     0,
       0,     0,   337,   338,   339,     0,     0,     0,     0,     0,
     340,   341,   342,     0,     0,     0,   343,   145,     8,     9,
      10,     0,    12,   504,   315,   316,   317,     0,   318,    14,
       0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    16,   319,    17,    18,    19,     0,   320,
     321,   322,    20,     0,   323,   324,   325,    21,   326,   327,
       0,    23,     0,     0,     0,   328,   329,   330,   331,   332,
      26,     0,     0,    28,    29,     0,     0,     0,   382,     0,
       0,     0,     0,     0,   335,     0,     0,  1710,     0,     0,
       0,     0,     0,     0,     0,   337,   338,  1711,     0,     0,
       0,     0,     0,   340,   341,   342,     0,     0,     0,  1712,
     270,     8,     9,    10,     0,    12,   504,   315,   316,   317,
       0,   318,    14,     0,     0,     0,   344,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    16,   319,    17,     0,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,     0,    23,     0,     0,     0,   328,   329,
     330,   331,   332,    26,     0,     0,    28,   271,     0,     0,
       0,   334,     0,     0,     0,     0,     0,   335,     0,     0,
     336,     0,     0,     0,     0,     0,     0,     0,   337,   338,
     339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,     0,   343,   270,     8,     9,    10,     0,    12,   504,
     315,   316,   317,     0,   318,    14,     0,     0,     0,   344,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     319,    17,     0,    19,     0,   320,   321,   322,    20,     0,
     323,   324,   325,    21,   326,   327,     0,    23,     0,     0,
       0,   328,   329,   330,   331,   332,    26,     0,     0,    28,
     271,   644,     0,     0,     0,     0,     0,     0,     0,     0,
     335,     0,     0,   336,     0,     0,     0,     0,     0,     0,
       0,   337,   338,   339,     0,     0,     0,     0,     0,   340,
     341,   342,     0,     0,     0,   645,   270,     8,     9,    10,
       0,    12,   504,   315,   316,   317,     0,   318,    14,     0,
       0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,     0,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,     0,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,   271,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   335,     0,     0,   336,     0,     0,     0,
       0,     0,     0,     0,   337,   338,   339,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,     0,   343,   682,
     270,     8,     9,    10,     0,    12,   504,   315,   316,   317,
       0,   318,    14,     0,     0,   344,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    16,   319,    17,     0,
      19,     0,   320,   321,   322,    20,     0,   323,   324,   325,
      21,   326,   327,     0,    23,     0,     0,     0,   328,   329,
     330,   331,   332,    26,     0,     0,    28,   271,     0,     0,
       0,   382,     0,     0,     0,     0,     0,   335,     0,     0,
     336,     0,     0,     0,     0,     0,     0,     0,   337,   338,
     339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
       0,     0,   343,   270,     8,     9,    10,     0,    12,   504,
     315,   316,   317,     0,   318,    14,     0,     0,     0,   344,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     319,    17,    18,    19,     0,   320,   321,   322,    20,     0,
     323,   324,   325,    21,   326,   327,     0,    23,     0,     0,
       0,   328,   329,   330,   331,   332,    26,     0,     0,    28,
     271,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     335,     0,     0,   630,     0,     0,     0,     0,     0,     0,
       0,   337,   338,   631,     0,     0,     0,     0,     0,   340,
     341,   342,     0,     0,     0,   632,  1278,     8,     9,    10,
       0,    12,   504,   315,   316,   317,     0,   318,    14,     0,
       0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    16,   319,    17,     0,    19,     0,   320,   321,
     322,    20,     0,   323,   324,   325,    21,   326,   327,     0,
      23,     0,     0,     0,   328,   329,   330,   331,   332,    26,
       0,     0,    28,   271,     0,     0,     0,   382,     0,     0,
       0,     0,     0,   335,     0,     0,   336,     0,     0,     0,
       0,     0,     0,     0,   337,   338,   339,     0,     0,     0,
       0,     0,   340,   341,   342,     0,     0,     0,   343,   145,
       8,     9,    10,     0,    12,   314,   315,   316,   317,     0,
     318,    14,     0,     0,     0,   344,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    16,   319,    17,    18,    19,
       0,   320,   321,   322,    20,     0,   323,   324,   325,    21,
     326,   327,     0,    23,     0,     0,     0,   328,   329,   330,
     331,   332,    26,     0,     0,    28,    29,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   335,     0,     0,  1710,
       0,     0,     0,     0,     0,     0,     0,   337,   338,  1711,
       0,     0,     0,     0,     0,   340,   341,   342,     0,     0,
       0,  1712,   270,     8,     9,    10,     0,    12,   504,   315,
     316,   317,     0,   318,    14,     0,     0,     0,   344,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    16,   319,
      17,     0,    19,     0,   320,   321,   322,    20,     0,   323,
     324,   325,    21,   326,   327,     0,    23,     0,     0,     0,
     328,   329,   330,   331,   332,    26,     0,     0,    28,   271,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   335,
       0,     0,   336,     0,     0,     0,     0,     0,     0,     0,
     337,   338,   339,     0,     0,     0,     0,     0,   340,   341,
     342,     0,     0,     0,   612,   270,     8,     9,    10,     0,
      12,   504,   315,   316,   317,     0,   318,    14,     0,     0,
       0,   344,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    16,   319,    17,     0,    19,     0,   320,   321,   322,
      20,     0,   323,   324,   325,    21,   326,   327,     0,    23,
       0,     0,     0,   328,   329,   330,   331,   332,    26,     0,
       0,    28,   271,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   335,     0,     0,   336,     0,     0,     0,     0,
       0,     0,     0,   337,   338,   339,     0,     0,     0,     0,
       0,   340,   341,   342,     0,     0,     0,   614,   270,     8,
       9,    10,     0,    12,   504,   315,   316,   317,     0,   318,
      14,     0,     0,     0,   344,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    16,   319,    17,     0,    19,     0,
     320,   321,   322,    20,     0,   323,   324,   325,    21,   326,
     327,     0,    23,     0,     0,     0,   328,   329,   330,   331,
     332,    26,     0,     0,    28,   271,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   335,     0,     0,   336,     0,
       0,     0,     0,     0,     0,     0,   337,   338,   339,     0,
       0,     0,     0,     0,   340,   341,   342,     0,     0,     0,
     343,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   344,   742,   743,
     744,   745,   746,   747,   748,   749,   750,   751,   752,   753,
     754,   755,   756,   757,   758,   759,   760,   761,   762,   763,
     647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
     657,   658,     0,   659,   660,   661,   662,   663,   664,   665,
     666,   667
};

static const short yycheck[] =
{
      14,     4,   167,     4,   180,   216,    23,   181,    22,   744,
     423,   182,   363,    81,     4,     4,   483,   817,   318,   319,
     369,   260,   423,   130,    60,     4,   155,   156,   162,   369,
     196,   549,     4,    36,    86,    36,   423,   423,   138,    58,
     389,   642,   984,   254,    45,    45,    36,    36,   251,   389,
     799,   351,    31,    32,    68,    45,    45,    36,   724,    60,
      45,   393,   465,   819,    36,    94,    45,    96,   137,   138,
     224,   225,    73,    45,  1435,   216,    81,  1428,   793,   128,
       4,    45,   150,   137,   225,    86,   245,    14,   501,  1551,
      91,  1546,  1551,    94,    77,    96,     4,  1605,    62,   310,
     501,  1621,    12,     9,   140,    45,    45,    86,    49,    12,
     111,   112,    36,   142,   128,  1171,    12,  1173,    12,    39,
    1758,    45,  1642,    56,    62,  1181,    67,     4,    36,   904,
     369,  1693,    34,    50,   800,   910,     3,    45,  1658,   140,
     154,   142,   210,   144,    77,   496,   182,   532,  1452,  1453,
     389,   140,   363,  1791,    95,    34,   507,    84,    64,    36,
      56,   140,   181,  1618,    62,  1469,     1,   552,   140,    65,
     171,   171,   110,    26,   175,   175,   155,   156,    49,   371,
     372,   182,   171,   110,  1692,   175,   175,  1714,    49,  1751,
     175,   111,   171,     1,  1714,   196,   175,  1724,  1725,   171,
     110,   141,    96,   175,  1724,  1725,    77,   110,    61,   111,
      77,   175,    65,   111,   110,  1519,   140,   196,    81,    95,
      13,   200,   201,     4,  1528,  1529,    61,  1531,   334,    49,
      65,   245,   246,   141,    95,   175,   175,    49,   430,   431,
      49,  1696,    49,  1770,    97,   108,   260,   171,  1023,   110,
    1770,   175,   216,    61,    78,    36,    80,    65,    62,    63,
     224,   225,    97,    63,    45,  1727,    62,   175,  1727,    62,
      62,   276,    65,     1,   137,    95,   155,   156,   157,  1734,
       3,     4,     5,    95,    96,  1227,    95,   150,    95,    97,
     254,   360,    63,  1042,   171,  1822,  1045,    63,   110,    56,
     818,   110,  1822,    56,   356,    86,   360,   196,   473,   443,
     311,   111,    65,   413,   110,    28,  1771,   110,   110,    32,
      77,   335,    56,   202,   522,  1629,  1630,    50,     0,   256,
      34,    65,   530,    61,    62,    62,    59,    60,   374,     7,
     111,     0,   343,   109,   373,   111,   310,   210,    63,   220,
      63,  1100,  1101,   110,    67,   356,   405,   110,    49,   140,
      83,     4,     5,   364,   378,    95,    62,  1728,     4,     5,
     719,    39,   373,   374,   528,   529,  1091,   356,   392,   111,
     112,   535,   245,   110,   518,   374,   515,   516,   529,   548,
     171,   405,    62,    49,   175,   374,   111,   551,   111,   363,
     786,    65,   374,   432,    95,  1756,   425,    13,    49,   812,
     813,    49,  1468,   276,   110,   196,    59,    60,    49,  1194,
      56,  1196,   423,    59,    60,   426,    65,    77,     9,    49,
      95,   432,    13,     3,     4,     5,    77,    73,    95,    95,
     110,    49,   369,   775,   423,    49,   110,    83,   687,   603,
     374,   155,   156,   157,    95,    96,    62,    95,    96,    65,
      96,  1403,   389,   427,    95,   197,   467,   467,    49,   110,
      49,   110,   110,   712,   493,    95,   495,   496,   467,  1790,
      50,    62,   467,    64,    65,    77,    67,    95,   467,    59,
      60,    95,  1158,   494,  1095,   467,   497,    78,   202,    80,
     501,  1812,    40,   467,    61,   368,     3,     4,     5,    63,
      67,   540,    65,    83,    95,    96,    95,    96,    56,   986,
    1269,  1270,   501,    49,    77,   388,    49,   109,    49,   110,
      61,   110,   496,   725,   548,    26,   515,   516,    63,   540,
      13,   647,   648,   467,   650,   651,   652,   653,   654,   655,
     656,   657,   658,   659,   660,   661,   662,   663,   664,   665,
     666,   667,    59,    60,   528,   529,  1341,    62,    99,    95,
      96,   535,    95,   436,    95,   356,   362,   363,   364,  1354,
      49,   610,    49,    78,   110,    56,    83,   551,    49,    62,
      65,     4,    65,   374,    67,   484,     4,     5,    67,    49,
      56,     1,    77,     3,     4,     5,    77,    49,    32,   610,
     802,   612,    49,   614,     3,     4,     5,     6,   619,   620,
     621,   622,   623,    36,    32,    65,    95,   679,    95,    96,
     644,   632,    86,    87,    95,   811,   515,   516,   517,   603,
       3,   642,   423,   110,   645,    95,  1164,    56,    56,    49,
      77,    59,    60,    95,    43,    61,    56,    95,    95,    59,
      60,    61,    62,    62,    63,    73,    49,   538,     4,     5,
      59,    60,    56,   687,    62,    83,   776,   678,   679,  1092,
    1147,  1148,    56,   783,  1033,   548,   467,    95,   891,   892,
      78,  1092,    80,  1033,   897,    95,   697,    56,   712,    49,
     679,    49,    91,   704,    50,  1092,  1092,   493,   727,   495,
     496,   497,    95,    96,   783,    77,   695,   696,   697,    67,
     501,   932,   611,    59,    60,   704,  1482,   110,   882,  1029,
     864,    78,   924,    56,    56,    56,  1511,    49,   904,    26,
     110,    28,    65,   606,   910,    95,    96,    95,    96,   778,
    1217,  1218,    49,   110,    77,    77,    77,    65,   188,   110,
       3,     4,     5,     6,   728,   110,    56,   784,    61,    77,
     784,   839,    65,   792,    61,    65,  1294,   778,    65,   793,
     669,   708,    12,    95,     8,     9,   675,    77,   677,   678,
    1546,    15,   524,   900,  1033,    32,  1145,   111,    95,    49,
      43,   818,     3,     4,     5,  1145,    63,    50,    32,   823,
      97,   515,   516,   517,    38,   704,    59,    60,  1336,    86,
      87,    49,   711,    47,    49,    49,    49,    99,   792,   692,
      56,    56,   721,   834,    95,  1302,     1,     3,     3,     4,
       5,   842,    63,    56,   707,    95,    96,    61,    91,    50,
      77,    77,    77,   832,   833,   834,    96,  1023,    59,    60,
     110,    96,  1618,   842,    77,   901,  1333,    95,    96,    56,
      95,    95,    95,    96,    65,    65,   905,   906,    65,   908,
      49,  1232,    83,    95,    49,    95,    77,   619,   867,   868,
      77,    56,  1084,   113,    59,    60,   901,  1031,   679,    26,
     901,    28,    95,   904,   905,   906,  1145,   908,    62,   910,
     147,   901,    26,   840,    28,   152,   697,   649,   882,     4,
       5,    77,   901,   704,    77,   904,    95,    96,  1395,   901,
      95,   910,    61,  1109,    61,  1691,    65,   196,    65,    61,
    1696,   110,  1742,    65,   676,    49,    26,    61,    28,    77,
     682,    65,    56,   842,    77,   834,    12,  1692,  1161,  1162,
    1163,    46,    95,   842,   201,    56,   698,   856,   932,    56,
      97,    56,   110,    77,    59,    60,   839,   901,  1734,  1446,
      62,    61,   983,    97,    56,    65,   987,    77,    56,    13,
      77,    95,  1098,    65,   110,   110,  1188,  1189,  1190,  1133,
       3,  1130,  1131,     6,    28,    77,   792,   870,    32,    77,
    1139,  1140,   744,     4,     5,  1771,  1017,    97,   110,  1486,
    1233,  1234,  1023,  1236,    56,    49,  1027,    77,  1194,    32,
    1196,    77,   269,     3,     4,     5,     6,   110,    62,    63,
      43,    65,   111,    67,  1023,   111,  1025,  1026,  1027,     4,
       5,    49,    65,   834,     9,    56,    59,    60,    56,   922,
    1795,   842,   110,  1077,    65,    56,    56,  1135,    59,    60,
      73,    95,    96,    43,   110,    65,    77,  1091,    67,    77,
      83,    83,    84,    85,    86,    87,   110,    77,    91,    59,
      60,  1092,    95,  1094,  1095,     8,     9,    95,   987,    62,
      63,    56,    15,   110,    59,    60,  1033,    67,     3,     4,
       5,     6,  1001,  1092,  1003,  1221,  1005,    62,    73,    32,
     901,    91,    67,   904,   110,    38,    62,    63,    83,   910,
     834,  1132,    77,    78,    47,  1171,   113,  1173,   842,    28,
    1141,    96,  1178,  1179,  1557,  1181,   932,    77,    43,  1150,
      77,  1130,  1131,  1132,    56,    50,  1557,    62,    63,  1178,
    1139,  1140,  1141,    28,    59,    60,  1171,    32,  1173,  1032,
    1171,  1034,  1173,    77,  1179,  1341,  1181,   110,  1179,   113,
    1181,  1171,   113,  1173,  1173,    62,    63,   110,  1354,    49,
    1079,  1181,  1171,  1194,  1173,  1196,    91,    62,    63,  1171,
     110,  1173,  1181,   110,  1218,  1206,     3,   444,    56,  1181,
     447,    95,  1241,    62,    63,  1194,     8,  1196,  1145,    49,
    1006,  1413,   459,    62,    67,   484,     4,     5,  1117,    89,
      90,     9,    63,    93,    94,    95,    96,   111,    77,    78,
    1241,    80,  1023,    62,    63,  1031,  1027,  1171,    62,  1173,
      95,  1130,  1131,  1132,    32,    62,    63,  1181,   111,   991,
    1139,  1140,  1141,  1614,  1265,     3,     4,     5,    56,     7,
       8,     9,  1135,   510,    63,  1138,   513,  1294,    56,     4,
       5,    59,    60,    46,  1263,  1264,  1265,    77,  1302,    38,
     527,  1170,  1024,    56,    32,    73,    67,    60,  1366,    67,
      38,    62,    63,  1174,  1175,    83,   110,    67,  1309,  1345,
     110,  1092,    63,  1184,   919,   920,   921,    95,    56,   110,
      28,    59,    60,    61,    32,    67,  1345,    67,  1307,  1308,
    1309,    56,   113,    78,    59,    60,    62,   110,  1805,  1375,
    1341,  1127,     3,     4,     5,  1511,   110,  1133,    73,  1328,
    1329,  1132,   611,  1354,    62,    63,   110,   110,    83,    67,
    1141,  1366,  1341,   110,    78,    78,    78,   105,   106,   107,
    1375,  1722,    78,   110,  1375,  1354,   110,     3,     4,     5,
       6,    61,    65,    31,    32,  1375,    34,    65,    62,    50,
    1171,   110,  1173,     3,     4,     5,  1375,    65,    59,    60,
    1181,     4,     5,  1375,   113,   110,     9,  1296,   110,  1298,
     669,  1300,    60,  1194,    62,  1196,   675,    43,   677,   678,
      68,   111,    83,   110,   110,    73,  1130,  1131,  1132,    32,
      96,   113,  1468,    59,    60,  1139,  1140,  1141,  1612,    91,
    1614,  1442,  1613,    77,    49,   110,    56,   110,   110,    59,
      60,  1375,   711,    56,   113,   885,    59,    60,  1463,   110,
     110,  1247,   721,  1468,   110,  1479,  1170,  1468,   111,  1255,
      73,    65,   110,     3,     4,     5,   111,    63,  1468,    61,
      83,     3,     4,     5,  1265,   200,   201,  1358,   110,  1468,
      67,   110,    95,  1364,  1365,   110,  1468,  1368,  1369,   147,
      95,  1372,  1503,  1366,   152,  1237,    95,   155,   156,   157,
    1511,  1722,    95,   111,     3,     4,     5,    95,  1304,   110,
      50,   113,  1501,  1502,  1503,   110,     8,  1313,  1309,    59,
      60,    34,  1511,   113,   182,  1424,   110,    59,    60,    61,
     188,   110,  1707,  1719,  1468,   879,   110,   110,  1551,   110,
    1551,    98,   200,   201,   202,   110,  1557,     3,     4,     5,
    1341,  1551,  1551,    62,  1578,   110,    62,    56,   216,   903,
      59,    60,  1551,  1354,    65,   909,  1439,   225,  1557,  1551,
      56,  1710,  1711,   110,   110,  1599,  1600,   110,    65,     3,
       4,     5,   113,  1612,  1375,  1614,   833,    49,   110,   110,
    1463,   110,   110,    67,  1605,   110,   254,    34,   110,   110,
      56,    95,  1613,    59,    60,  1605,  1605,     3,     4,     5,
       6,   269,  1787,   110,   110,  1790,  1605,  1551,   865,   866,
     113,   110,   110,  1605,    65,    65,   873,     3,     4,     5,
       6,  1655,  1656,    63,  1809,    59,    60,  1812,    62,     9,
    1614,    63,    63,   156,   157,  1526,  1527,    43,  1390,  1391,
    1392,  1393,   310,   311,    50,    17,   111,   110,   110,  1401,
      61,    95,    95,    59,    60,    63,    63,    43,     3,     4,
       5,  1605,    67,    56,  1018,  1686,  1020,  1468,    95,   104,
    1704,  1692,  1693,    59,    60,   343,   109,    83,    18,   202,
      63,    56,  1692,  1692,  1723,    91,   110,  1686,     3,     4,
       5,  1712,    63,  1692,  1693,   363,   364,   110,  1504,  1505,
    1692,    63,  1503,    63,  1727,    91,  1727,    63,   987,    62,
    1511,  1710,  1711,    95,    59,    60,    67,  1727,  1727,   110,
      63,   113,  1001,   110,  1003,    63,  1005,    12,  1727,   110,
    1751,    95,     3,     4,     5,  1727,    63,    63,  1722,  1773,
      63,    56,   110,    63,    59,    60,    61,     0,  1692,     0,
    1551,     0,  1751,  1559,   176,     2,  1557,    36,   426,   427,
    1669,  1656,     3,     4,     5,     6,  1092,     3,     4,     5,
    1669,     7,     8,     9,   776,   510,   444,  1668,   513,   447,
     515,   516,   171,  1727,  1718,   453,   454,   455,    59,    60,
     175,   459,   527,   467,  1179,     3,     4,     5,  1294,  1551,
    1079,    98,    43,   144,  1605,  1641,     3,     4,     5,    50,
    1077,  1710,  1711,  1712,   734,   823,  1336,  1164,    59,    60,
     343,   313,  1375,    59,    60,     4,   494,  1179,   496,   497,
       3,     4,     5,     6,  1465,   736,  1048,   679,  1117,  1193,
     207,  1195,   510,   360,   128,   513,  1598,   515,   516,   517,
      91,    59,    60,   521,  1745,  1546,  1483,    36,   636,   527,
    1727,   529,    59,    60,   532,  1742,    45,  1739,  1789,   851,
      43,  1128,  1129,  1442,    -1,    -1,    -1,    50,    -1,    58,
    1137,    60,    -1,   551,   552,  1686,    59,    60,    -1,    -1,
      -1,  1692,  1693,    -1,    -1,    -1,    -1,  1347,  1348,  1651,
       4,     5,    -1,  1257,    -1,     9,    -1,    -1,    -1,    -1,
      83,    -1,    58,    -1,    -1,    -1,     4,     5,    91,    -1,
      -1,     9,    -1,    -1,  1374,    -1,  1727,    -1,    32,  1379,
      -1,   454,   455,    -1,  1686,   603,    -1,    -1,    -1,    -1,
    1692,  1693,    -1,    -1,   612,  1669,   614,   695,   696,    -1,
    1751,    -1,    56,    -1,    -1,    59,    60,    -1,     7,     8,
       9,   140,   630,   631,   632,    -1,    15,   146,    56,    73,
      -1,    59,    60,    -1,    -1,  1727,    -1,   645,    -1,    83,
      -1,     3,     4,     5,    -1,    73,  1710,  1711,  1712,    38,
      -1,    95,   171,   516,   517,    83,   175,    -1,    47,  1751,
      -1,    -1,   181,   182,    -1,    -1,    -1,    -1,  1458,  1459,
      -1,  1461,  1462,  1765,  1464,    -1,    -1,  1296,    -1,  1298,
      -1,  1300,     3,     4,     5,     6,    -1,   695,   696,   697,
       3,     4,     5,  1785,    -1,   181,   704,    59,    60,     3,
       4,     5,    -1,  1795,    -1,    -1,    -1,    -1,  1305,  1306,
     229,    32,    -1,    -1,    -1,  1312,     3,     4,     5,    -1,
     728,    -1,    43,  1417,  1816,    -1,  1516,  1517,    49,    -1,
      -1,     3,     4,     5,    -1,    56,    -1,    50,    59,    60,
      -1,    -1,    -1,   229,   832,   833,    59,    60,    -1,   612,
      -1,   614,    73,    -1,  1448,    59,    60,   832,   833,    -1,
    1454,    -1,    83,     3,     4,     5,     6,    -1,   631,   632,
      91,    -1,    59,    60,    95,    96,  1470,  1471,    50,  1569,
    1570,  1571,   645,    -1,   792,   793,    -1,    59,    60,    -1,
     865,   866,   867,   868,    -1,    -1,    -1,    -1,   873,  1493,
      40,    41,    -1,    43,    -1,  1424,     3,     4,     5,     6,
      83,    84,    85,    86,    87,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,   832,   833,   834,    -1,     3,     4,
       5,    -1,     7,    -1,   842,    -1,  1626,  1627,    -1,    -1,
      -1,   704,    -1,  1537,  1538,    -1,    43,    -1,   856,    -1,
      -1,    91,    -1,    50,    -1,   374,    -1,   865,   866,   867,
     868,   869,    59,    60,    39,   873,  1560,  1561,     1,  1563,
       3,     4,     5,     6,     7,     8,     9,   885,    -1,    -1,
      -1,    56,    15,    -1,    59,    60,    83,    81,    82,    83,
      84,    85,    86,    87,    91,    -1,    29,    -1,    31,    32,
      33,    -1,    -1,    -1,    -1,    38,   425,     3,     4,     5,
      43,     7,     8,     9,    47,   434,    -1,    50,    -1,  1007,
      -1,    -1,  1010,    56,   932,    -1,    59,    60,     3,     4,
       5,     6,    -1,  1021,     9,    -1,    32,  1025,  1026,   425,
      73,    -1,    38,    -1,    -1,    -1,    -1,    -1,   467,    -1,
      83,    -1,    -1,    -1,    -1,    -1,    -1,    32,    91,    -1,
      -1,    -1,    95,    59,    60,    -1,    99,    -1,    43,     4,
       5,   834,    -1,  1763,   493,   494,   495,   496,    -1,   842,
      -1,    56,   501,  1677,    59,    60,    -1,    -1,    -1,    -1,
     509,    -1,    -1,   856,    -1,    -1,    -1,    32,    73,  1007,
      -1,    -1,  1010,   522,    -1,   868,   869,   493,    83,   495,
     496,   530,    -1,  1021,    49,    -1,    91,  1025,  1026,  1027,
      95,    56,    -1,   509,    59,    60,    -1,    -1,    -1,    -1,
      -1,    -1,   518,    -1,    -1,    -1,   522,    -1,    73,    -1,
    1128,  1129,  1130,  1131,   530,   564,    -1,    -1,    83,  1137,
      -1,  1139,  1140,  1128,  1129,  1130,  1131,    -1,    -1,    -1,
      95,    96,  1137,    -1,  1139,  1140,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    -1,  1151,  1152,  1153,    -1,
      -1,    -1,    -1,  1091,    -1,   278,   279,   280,   281,   282,
     283,    -1,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,    -1,   308,    -1,    -1,    -1,    -1,
    1128,  1129,  1130,  1131,  1132,     3,     4,     5,     6,  1137,
      -1,  1139,  1140,  1141,     3,     4,     5,     6,    -1,    -1,
      -1,    -1,    -1,  1151,  1152,  1153,    -1,    -1,     7,     8,
       9,    -1,    -1,     7,     8,     9,    15,    -1,    -1,    -1,
      -1,    15,  1170,  1026,  1027,    43,    -1,    -1,    -1,    -1,
      -1,  1179,    50,    32,    43,  1263,  1264,    -1,    32,    38,
      49,    59,    60,    -1,    38,    -1,    -1,    56,    47,    -1,
      59,    60,    -1,    47,     3,     4,     5,     6,     7,     8,
       9,    -1,    -1,    -1,    73,    83,    15,    -1,   727,    63,
      -1,    -1,    -1,    91,    83,    -1,    -1,  1305,  1306,  1307,
    1308,    -1,    91,    32,  1312,    -1,    95,    96,    -1,    38,
    1305,  1306,  1307,  1308,    43,    -1,    -1,  1312,    47,    -1,
      49,   727,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,
      59,    60,    -1,  1328,  1329,  1263,  1264,  1265,    -1,    -1,
      -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,  1131,  1132,
      -1,    -1,    -1,   792,    83,    -1,    -1,  1140,  1141,    -1,
      -1,    -1,    91,    -1,    -1,    -1,    95,    96,     3,     4,
       5,     6,    -1,    -1,     9,    -1,    -1,  1305,  1306,  1307,
    1308,  1309,    -1,    -1,  1312,    -1,   792,  1170,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    32,    -1,    -1,
    1328,  1329,  1330,    -1,    -1,    -1,    -1,    -1,    43,    -1,
       3,     4,     5,     6,    49,    -1,     9,    -1,    -1,  1347,
    1348,    56,   861,    -1,    59,    60,    -1,    -1,    -1,  1437,
    1438,    -1,  1440,    -1,    -1,    -1,    -1,    -1,    73,    32,
      -1,   880,  1437,  1438,    -1,  1440,  1374,    -1,    83,    -1,
      43,  1379,    -1,    -1,    -1,   861,    91,    -1,   864,     4,
      95,    96,   901,    56,    -1,   578,    59,    60,    -1,    14,
      -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,    -1,    24,
      73,  1264,  1265,    -1,    -1,    -1,    31,    32,   601,    34,
      83,    36,    -1,  1501,  1502,    -1,   609,    -1,    91,    -1,
      45,    -1,    95,    -1,    -1,    -1,  1501,  1502,    -1,  1437,
    1438,    -1,  1440,    58,    -1,    60,    81,    82,    83,    84,
      85,    86,    87,    68,    -1,  1308,  1309,    -1,    73,    -1,
    1458,  1459,    -1,  1461,  1462,    -1,  1464,    -1,    -1,    84,
      -1,    86,    -1,    -1,    -1,    -1,    91,    -1,    -1,    94,
      -1,    96,     3,     4,     5,     6,     7,     8,     9,    -1,
      -1,    -1,    13,    -1,    15,   110,    -1,    -1,    -1,     4,
       5,    -1,    -1,  1501,  1502,  1503,    -1,    -1,    29,    -1,
      31,    32,    -1,    -1,    -1,    -1,    -1,    38,  1516,  1517,
      -1,    -1,    43,   138,    -1,   140,    47,   142,    49,   144,
      -1,   146,   147,    -1,    -1,    56,   151,   152,    59,    60,
     155,   156,   157,    -1,    49,    -1,    -1,    -1,     4,     5,
      -1,    56,    73,     9,    59,    60,   171,     7,     8,     9,
     175,    -1,    83,    -1,    -1,    15,   181,   182,    73,    -1,
      91,  1569,  1570,  1571,    95,    96,    32,    -1,    83,    -1,
      -1,    -1,    32,    -1,    -1,   200,   201,   202,    38,    -1,
      95,    96,    -1,    49,    -1,    -1,    -1,    47,    -1,    -1,
      56,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    63,   229,  1613,  1614,    73,  1127,    -1,
       3,     4,     5,     6,    -1,    -1,    -1,    83,  1626,  1627,
      -1,   246,    -1,    -1,    -1,     3,     4,     5,     6,    95,
      96,   256,    -1,    -1,    -1,  1710,  1711,    -1,    -1,    -1,
      -1,  1127,    -1,    -1,   269,    -1,    -1,  1133,    -1,    -1,
      43,    -1,  1171,    -1,  1173,    -1,    -1,    50,    -1,  1178,
    1179,  1669,  1181,    -1,    -1,    43,    59,    60,    -1,    -1,
      -1,     3,     4,     5,     6,     7,     8,     9,    56,    -1,
      -1,    59,    60,    15,    -1,    63,   311,   312,    -1,    -1,
      83,    -1,  1178,    -1,    -1,    73,    -1,    29,    91,    31,
      32,    33,  1710,  1711,  1712,    83,    38,    -1,    -1,    -1,
      -1,    43,    -1,    91,  1722,    47,    -1,    95,    50,    -1,
      -1,    -1,   915,   916,    56,    -1,    -1,    59,    60,    -1,
      -1,   356,    -1,    -1,    -1,   360,    -1,   362,   363,   364,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
      -1,    83,    -1,    -1,    -1,  1763,    -1,    -1,    -1,    91,
      -1,    -1,    -1,    95,    -1,    -1,    -1,    99,    -1,    -1,
      -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,
      -1,    -1,    -1,     4,     5,  1304,    -1,    -1,   413,    -1,
      -1,    -1,    -1,    -1,  1313,    -1,    -1,    -1,   423,    -1,
     425,   426,    -1,    -1,    -1,    -1,  1669,   432,    -1,   434,
      -1,    32,    -1,    43,    -1,    -1,    -1,    -1,  1304,   444,
      50,    -1,   447,    -1,    -1,    -1,  1345,  1313,    49,    59,
      60,    -1,    -1,    -1,   459,    56,    -1,    -1,    59,    60,
      -1,    -1,   467,    -1,    -1,  1331,  1332,    -1,  1711,  1712,
      -1,    -1,    73,    83,    -1,    -1,  1375,    -1,    -1,  1345,
      -1,    91,    83,     3,     4,     5,     6,    -1,   493,   494,
     495,   496,   497,    -1,    95,    96,   501,    -1,     3,     4,
       5,     6,    -1,    -1,   509,   510,    -1,    -1,   513,    -1,
     515,   516,   517,   518,    -1,    -1,    -1,   522,    -1,    -1,
      -1,    -1,   527,    43,    -1,   530,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   540,    56,    -1,    43,    59,
      60,    -1,     1,    63,     3,     4,     5,     6,     7,     8,
       9,    56,    -1,    73,    59,    60,    15,    -1,    -1,   564,
      -1,  1460,    -1,    83,    -1,    -1,  1465,    -1,    -1,  1468,
      29,    91,    31,    32,    33,    95,    -1,    -1,  1444,    38,
      39,    -1,    -1,    -1,    43,    -1,    91,    -1,    47,    48,
      -1,    50,    -1,    -1,  1460,    -1,    -1,    56,    -1,    -1,
      59,    60,    -1,   608,    63,   610,    65,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    73,   620,   621,   622,   623,    -1,
      -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,     3,     4,
       5,     6,    91,    -1,    -1,    -1,    95,   642,  1504,  1505,
      -1,     3,     4,     5,     6,    -1,    -1,     9,    74,    75,
      76,    77,   111,    79,    80,    81,    82,    83,    84,    85,
      86,    87,     3,     4,     5,     6,    -1,    -1,    43,    -1,
      32,    -1,    -1,    -1,   679,    50,   681,    -1,    -1,    -1,
      -1,    43,    -1,    -1,    59,    60,    -1,    49,   693,    -1,
     695,   696,   697,  1559,    56,    -1,    -1,    59,    60,   704,
      -1,    -1,    43,   708,    -1,     3,     4,     5,     6,    50,
      -1,    73,    -1,  1612,  1613,  1614,    91,    -1,    59,    60,
      -1,    83,   727,    -1,    -1,    -1,    -1,    -1,    65,    91,
      -1,    -1,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    83,    -1,    -1,    43,  1612,    -1,  1614,     1,
      91,     3,     4,     5,     6,     7,     8,     9,    56,    -1,
      -1,    59,    60,    15,    -1,    63,    -1,    65,    -1,    -1,
      -1,   776,    -1,   778,    -1,    73,    28,    29,   783,    31,
      32,    33,    -1,    -1,    -1,    83,    38,   792,   793,    -1,
      -1,    43,    -1,    91,    46,    47,    48,    95,    50,    -1,
      -1,    -1,    -1,    -1,    56,    57,    -1,    59,    60,   146,
      -1,    63,    -1,     3,     4,     5,     6,    -1,    -1,    -1,
      -1,    73,    -1,    -1,  1723,   162,    -1,   832,   833,   834,
      -1,    83,    -1,    -1,    -1,   840,    -1,   842,    -1,    91,
      -1,    -1,    -1,    95,    -1,    -1,    -1,    99,    -1,    -1,
      40,    41,    -1,    43,    -1,    -1,   861,  1723,    -1,   864,
     865,   866,   867,   868,   869,    -1,    56,    -1,   873,    59,
      60,    -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,    -1,
       1,    -1,   219,     4,     5,    -1,    -1,     8,     9,    -1,
     227,    -1,    -1,    -1,    15,    -1,   901,    -1,    -1,   904,
     905,   906,    -1,   908,    -1,   910,    -1,   244,    29,    -1,
      31,    32,    -1,    -1,   919,   920,   921,    38,   255,    40,
      41,    -1,    -1,    -1,    -1,    -1,    47,   932,    49,    -1,
      -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,    60,
      -1,    62,    -1,    -1,    -1,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    -1,    -1,    89,    90,
      91,    -1,    93,    -1,    -1,    96,    -1,    -1,   983,     4,
       5,    -1,    -1,     1,     9,     3,     4,     5,     6,    -1,
       8,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1006,  1007,    -1,    -1,  1010,    -1,    32,    -1,    -1,
      -1,    -1,  1017,    -1,    -1,    -1,  1021,    -1,  1023,    -1,
    1025,  1026,  1027,    -1,    49,    43,  1031,    -1,  1033,    -1,
      -1,    56,    50,    -1,    59,    60,    -1,    -1,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    73,     1,
      -1,     3,     4,     5,     6,     7,     8,     9,    83,    -1,
      -1,    -1,    -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,
      95,    96,    -1,    91,    -1,    -1,    -1,    29,    -1,    31,
      32,    33,    -1,    -1,    -1,    -1,    38,  1092,    -1,  1094,
    1095,    43,    -1,    -1,    -1,    47,    48,   434,    50,    -1,
      -1,    -1,    -1,    -1,    56,    -1,   443,    59,    60,    -1,
      -1,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    73,  1127,  1128,  1129,  1130,  1131,  1132,  1133,    -1,
      -1,    83,  1137,    -1,  1139,  1140,  1141,    -1,   475,    91,
    1145,    -1,    -1,    95,    -1,  1150,  1151,  1152,  1153,    -1,
      -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,
      -1,    -1,  1167,    -1,    -1,  1170,  1171,    -1,  1173,    -1,
      -1,    -1,   509,  1178,  1179,    -1,  1181,    -1,    -1,    -1,
      -1,   518,    32,    -1,    -1,    -1,    -1,    -1,    -1,  1194,
      -1,  1196,    -1,    43,    -1,     3,     4,     5,     6,    49,
     537,  1206,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
      -1,    -1,    -1,    73,    32,    -1,    -1,   564,  1233,  1234,
      -1,  1236,    -1,    83,    -1,    43,  1241,    -1,    -1,    -1,
      -1,    91,  1247,    -1,    -1,    95,    96,    -1,    56,    -1,
    1255,    59,    60,    40,    41,    -1,    43,    -1,  1263,  1264,
    1265,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    56,
      -1,    -1,    59,    60,    -1,    83,     3,     4,     5,     6,
       7,     8,     9,    91,    -1,    -1,    -1,    95,    15,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1304,
    1305,  1306,  1307,  1308,  1309,    32,    -1,  1312,  1313,    -1,
      -1,    38,    -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,
      47,    -1,    49,  1328,  1329,  1330,  1331,  1332,    -1,    56,
      -1,    -1,    59,    60,    -1,    -1,  1341,    -1,    -1,    -1,
    1345,    -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,  1354,
       3,     4,     5,     6,    -1,    -1,    83,    -1,    -1,    -1,
      -1,    -1,  1367,    -1,    91,    -1,    -1,     4,    95,    96,
    1375,    -1,    -1,    -1,    -1,    91,    -1,    14,    94,    32,
      96,    -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,
      43,    -1,    -1,    -1,    31,    32,    49,    34,    -1,    36,
      -1,    -1,    -1,    56,    -1,    -1,    59,    60,    45,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      73,    58,    -1,    60,    -1,    -1,   142,    -1,   144,    -1,
      83,    68,  1437,  1438,    -1,  1440,    73,  1442,    91,  1444,
      -1,    -1,    95,    96,    -1,     3,     4,     5,     6,    86,
      -1,    -1,    -1,    -1,    91,  1460,    -1,    94,     1,    96,
    1465,     4,     5,  1468,    -1,     8,     9,    73,    74,    75,
      76,    77,    15,    79,    80,    81,    82,    83,    84,    85,
      86,    87,    -1,    -1,    -1,    43,    29,    -1,    31,    32,
      -1,    -1,    50,    -1,    -1,    38,  1501,  1502,  1503,  1504,
    1505,    59,    60,   140,    47,   142,  1511,   144,    -1,   146,
     147,    -1,    -1,    56,    -1,   152,    59,    60,   155,   156,
     157,    -1,    -1,    -1,   861,    83,    -1,   864,    -1,    -1,
      -1,    -1,    -1,    91,   171,    -1,    -1,    -1,   175,    -1,
      -1,    -1,    -1,   880,   181,   182,     4,     5,    -1,     7,
       8,     9,  1557,    -1,  1559,    13,    -1,    15,    -1,    -1,
      -1,    -1,    -1,   200,   201,   202,    -1,    -1,    -1,    -1,
      -1,    29,    -1,    31,    32,    -1,    -1,    -1,    -1,    -1,
      38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
      -1,    49,   229,    -1,    -1,    -1,    -1,    -1,    56,    -1,
      -1,    59,    60,    -1,   320,   321,    -1,  1612,  1613,  1614,
      -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,   334,    -1,
     336,    -1,    -1,   339,    -1,    83,   342,    -1,    -1,   345,
      -1,    -1,   269,   349,    -1,    -1,    -1,    95,    96,    -1,
       1,   357,     3,     4,     5,     6,     7,     8,     9,    -1,
      -1,    -1,    -1,    -1,    15,    -1,    -1,   373,    -1,    -1,
      -1,    -1,    -1,    -1,  1669,    -1,    -1,    -1,    29,  1006,
      31,    32,    33,    -1,   311,   312,    -1,    38,    39,    -1,
      -1,    -1,    43,    -1,    -1,    -1,    47,    48,    -1,    50,
      -1,    -1,    -1,    -1,  1031,    56,    -1,    -1,    59,    60,
      -1,    -1,    63,    -1,    65,  1710,  1711,  1712,    -1,    -1,
      -1,    -1,    73,    -1,    -1,    -1,   432,    -1,  1723,   356,
      -1,    -1,    83,   360,    -1,   362,   363,   364,    -1,    -1,
      91,    -1,   369,    -1,    95,    -1,   373,   374,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,
     111,     9,   389,    70,    71,    72,    73,    74,    75,    76,
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
      87,    -1,    -1,    -1,    32,    -1,   413,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    43,   423,    -1,   425,   426,
    1127,    49,    -1,    -1,    -1,   432,  1133,   434,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    -1,   444,    -1,    -1,
     447,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,   459,    -1,   540,    83,    -1,    -1,    -1,    -1,
     467,    -1,    -1,    91,    -1,    -1,    -1,    95,    96,    -1,
       4,     5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,
      -1,    15,    -1,    -1,    -1,    -1,   493,   494,   495,   496,
     497,    -1,    -1,    -1,   501,    29,    -1,    31,    32,    -1,
      -1,    -1,   509,   510,    38,    -1,   513,    -1,   515,   516,
     517,   518,    -1,    47,    -1,   522,    50,    -1,    -1,    -1,
     527,    -1,    56,   530,   610,    59,    60,    -1,    -1,    -1,
      -1,    -1,    -1,   540,    -1,    -1,    -1,    -1,    -1,    -1,
    1247,    -1,   549,    -1,   630,   631,    -1,    -1,  1255,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   642,   564,    -1,    -1,
      -1,   647,   648,    -1,   650,   651,   652,   653,   654,   655,
     656,   657,   658,   659,   660,   661,   662,   663,   664,   665,
     666,   667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       3,     4,     5,     6,    -1,    -1,     9,  1304,    -1,    -1,
      -1,    -1,    -1,   610,    -1,    -1,  1313,    -1,    -1,    -1,
      -1,    -1,    -1,   620,   621,   622,   623,    -1,    -1,    32,
      -1,    -1,    -1,    -1,  1331,  1332,    -1,    -1,    -1,    -1,
      43,    -1,    -1,    -1,    -1,   642,    49,    -1,    -1,    -1,
      -1,    -1,    -1,    56,    -1,    -1,    59,    60,    -1,     1,
      -1,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
      73,    -1,    -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,
      83,    -1,   679,    -1,   681,    -1,    -1,    29,    91,    31,
      32,    33,    95,    96,    -1,    -1,    38,    39,   695,   696,
     697,    43,   778,    -1,    -1,    47,    48,   704,    50,    -1,
      -1,    -1,    -1,    -1,    56,    -1,    -1,    59,    60,    -1,
      -1,    63,   719,    65,    -1,    -1,    -1,    -1,    -1,    -1,
     727,    73,     3,     4,     5,     6,     7,     8,     9,    -1,
      -1,    83,    13,    -1,    15,    -1,    -1,  1444,    -1,    91,
      -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,    29,    -1,
      31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,   111,
      -1,    -1,    43,    -1,    -1,    -1,    47,    -1,    49,   776,
      -1,   778,    -1,    -1,    -1,    56,    -1,   784,    59,    60,
      -1,    -1,    -1,    -1,    -1,   792,   793,    -1,    -1,    -1,
      -1,    -1,    73,    -1,    -1,     4,     5,  1504,  1505,    -1,
       9,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      91,   818,    -1,    -1,    95,    96,    -1,    -1,    -1,   905,
     906,    -1,   908,    32,    -1,   832,   833,   834,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   842,     3,     4,     5,     6,
      49,    -1,     9,    -1,    -1,    -1,    -1,    56,    -1,    -1,
      59,    60,  1559,    -1,   861,    -1,    -1,   864,   865,   866,
     867,   868,   869,    -1,    73,    32,   873,    -1,    -1,    -1,
      -1,    -1,    -1,   880,    83,    -1,    43,    -1,     3,     4,
       5,     6,    49,    -1,     9,    -1,    95,    96,    -1,    56,
      -1,    -1,    59,    60,   901,    -1,    -1,   904,   905,   906,
      -1,   908,    -1,   910,    -1,    -1,    73,    32,    -1,   995,
      -1,    -1,   919,   920,   921,    -1,    83,    -1,    43,    -1,
      -1,    -1,    -1,    -1,    91,   932,    -1,    -1,    95,    96,
      -1,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,  1025,
    1026,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,     1,
      -1,     3,     4,     5,     6,     7,     8,     9,    83,    -1,
      -1,    -1,    -1,    15,    -1,    -1,    91,    -1,    -1,    -1,
      95,    -1,    -1,    -1,    -1,    -1,   983,    29,    -1,    31,
      32,    33,    -1,    -1,    -1,    -1,    38,    39,    -1,     4,
       5,    43,    -1,    -1,     9,    47,    48,    -1,    50,  1006,
    1007,    -1,    -1,  1010,    56,    -1,    -1,    59,    60,  1095,
    1017,    63,  1098,    65,  1021,    -1,  1023,    32,  1025,  1026,
    1027,    73,    -1,    -1,  1031,    -1,  1033,    -1,    -1,    -1,
      -1,    83,    -1,    -1,    49,    -1,    -1,    -1,    -1,    91,
      -1,    56,    -1,    95,    59,    60,    -1,    -1,    -1,     3,
       4,     5,     6,  1139,  1140,    -1,    -1,    -1,    73,   111,
      70,    71,    72,    73,    74,    75,    76,    77,    83,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    32,    -1,
      95,    96,    -1,    -1,    -1,  1092,    -1,  1094,  1095,    43,
      -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,
      -1,    -1,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,
      -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,    73,
    1127,  1128,  1129,  1130,  1131,  1132,  1133,    -1,    -1,    83,
    1137,    -1,  1139,  1140,  1141,  1221,    -1,    91,  1145,    -1,
      -1,    95,    96,  1150,  1151,  1152,  1153,    -1,    -1,    -1,
      -1,    -1,    43,  1239,    -1,  1241,    -1,  1164,    -1,    -1,
    1167,    -1,    -1,  1170,  1171,    56,  1173,    -1,    59,    60,
      -1,  1178,  1179,    -1,  1181,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    73,    -1,    -1,    -1,    -1,  1194,    -1,  1196,
       4,     5,    83,    -1,     8,     9,    -1,    -1,    -1,  1206,
      91,    15,    -1,    -1,    95,    -1,    -1,    -1,    -1,     4,
      -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,    -1,
      -1,    -1,    -1,    -1,    38,    -1,  1233,  1234,    -1,  1236,
      -1,    -1,    -1,    47,  1241,    49,    31,    32,    -1,    34,
    1247,    36,    56,    -1,    -1,    59,    60,    -1,  1255,    -1,
      45,    -1,    -1,    -1,    -1,    -1,  1263,  1264,  1265,    73,
      -1,    -1,    -1,    58,    -1,    60,    75,    76,    77,    83,
      79,    80,    81,    82,    83,    84,    85,    86,    87,    -1,
      -1,    95,    96,    -1,    -1,    -1,    81,  1294,    -1,    84,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1304,  1305,  1306,
    1307,  1308,  1309,    -1,    -1,  1312,  1313,    74,    75,    76,
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
      87,  1328,  1329,  1330,  1331,  1332,    -1,    -1,    -1,  1336,
      -1,    -1,    -1,    -1,  1341,    -1,    -1,    -1,  1345,    -1,
      -1,    -1,   137,   138,    -1,   140,    -1,  1354,    -1,    -1,
      -1,   146,   147,    -1,    -1,   150,   151,   152,    -1,    -1,
     155,   156,   157,    -1,    -1,    -1,    -1,   162,  1375,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   171,    -1,    -1,    -1,
     175,    -1,    -1,    -1,    -1,    -1,   181,   182,    -1,    -1,
       1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
      -1,    -1,    -1,    -1,    15,   200,   201,   202,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   210,    -1,    -1,    29,    -1,
      31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,
    1437,  1438,    43,  1440,   229,  1442,    47,  1444,    -1,    50,
      -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,    60,
      -1,    -1,    63,  1460,    -1,    -1,    -1,    -1,  1465,    -1,
      -1,  1468,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    83,    -1,   269,    -1,    -1,    -1,    -1,    -1,
      91,   276,    76,    77,    95,    79,    80,    81,    82,    83,
      84,    85,    86,    87,  1501,  1502,  1503,  1504,  1505,    -1,
      -1,    -1,    -1,    -1,  1511,    -1,    -1,    -1,    -1,    -1,
      -1,     3,     4,     5,     6,     7,     8,     9,    -1,  1605,
      -1,    13,    -1,    15,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    29,    -1,    31,
      32,    83,    -1,    -1,    -1,    -1,    38,    -1,   343,    -1,
    1557,    43,  1559,    -1,    -1,    47,    -1,    49,     3,     4,
       5,     6,    -1,    -1,    56,   360,    -1,    59,    60,    -1,
      -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,   374,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
      -1,    83,    -1,   388,  1601,    -1,    -1,    -1,    43,    91,
      -1,    -1,    -1,    95,    96,  1612,  1613,  1614,    -1,    -1,
      -1,    56,    -1,    -1,    59,    60,    -1,    -1,   413,    -1,
      -1,    -1,    -1,   165,  1710,  1711,    -1,    -1,    73,    -1,
     425,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,   434,
      -1,   436,    -1,    -1,    -1,    -1,    91,    -1,   443,   444,
      95,    -1,   447,    -1,    -1,    -1,   198,    -1,   453,   454,
     455,    -1,  1669,    -1,   459,    -1,    -1,    -1,    -1,   211,
      -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
       9,    -1,    -1,    -1,    -1,    -1,    15,    -1,   493,   494,
     495,   496,    -1,  1710,  1711,  1712,   501,    -1,    -1,    -1,
      29,    -1,    31,    32,   509,   510,  1723,    -1,   513,    38,
     515,   516,   517,   518,    43,    -1,    -1,   522,    47,    -1,
      49,    -1,   527,    -1,    -1,   530,    -1,    56,    -1,    -1,
      59,    60,     3,     4,     5,     6,    -1,    -1,     9,    -1,
      -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
       4,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,   564,
      -1,    32,    91,    -1,    -1,    -1,    95,    96,    -1,    -1,
      -1,    -1,    43,    -1,    -1,    -1,    -1,    31,    32,    -1,
      34,    -1,    36,    -1,    -1,    56,    -1,    -1,    59,    60,
      -1,    45,    -1,     3,     4,     5,     6,     7,     8,     9,
      -1,    -1,    73,    -1,    58,    15,    60,   612,    -1,   614,
      -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    29,
      91,    31,    32,    -1,    95,   630,   631,   632,    38,    -1,
      84,    -1,    -1,    43,    -1,    -1,    -1,    47,    -1,    -1,
     645,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    63,    -1,    -1,    71,    72,    73,    74,
      75,    76,    77,    73,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    83,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    91,    -1,    -1,    -1,    95,   140,   692,    -1,    -1,
      -1,    -1,   146,   147,    -1,    -1,    -1,   151,   152,   704,
      -1,   155,   156,   157,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     4,     5,    -1,   171,    -1,     9,
      -1,   175,   727,    -1,    -1,    -1,    -1,   181,   182,    76,
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
      87,    -1,    32,    -1,    -1,    -1,   200,   201,   202,    -1,
      -1,     3,     4,     5,     6,     7,     8,     9,    -1,    49,
      -1,    13,    -1,    15,    -1,    -1,    56,    -1,   520,    59,
      60,   776,    -1,   525,    -1,   229,    -1,    29,   783,    31,
      32,    -1,    -1,    73,    -1,    -1,    38,   792,    -1,    -1,
      -1,    43,    -1,    83,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,   554,    -1,    56,    95,    96,    59,    60,   561,
      -1,    -1,    -1,    -1,    -1,   269,    -1,    -1,    -1,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,   832,   833,   834,
      -1,    83,    -1,    -1,   839,   840,    -1,   842,    -1,    91,
      -1,    -1,    -1,    95,     3,     4,     5,     6,    -1,    -1,
       9,   856,   604,   605,    -1,   607,   861,    -1,    -1,   864,
     865,   866,   867,   868,   869,    -1,    -1,    -1,   873,    -1,
      -1,    -1,    -1,    32,    -1,   880,    -1,     3,     4,     5,
       6,     7,     8,     9,    43,    -1,    -1,    -1,    -1,    15,
      -1,    -1,    -1,    -1,    -1,    -1,   901,    56,    -1,    -1,
      59,    60,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,
      -1,    -1,    38,    -1,    73,   369,    -1,    43,     4,     5,
     374,    47,     8,     9,    83,    -1,    -1,    -1,    -1,    15,
      56,    -1,    91,    59,    60,   389,    95,    -1,    -1,    65,
      -1,    -1,    -1,    -1,    -1,    -1,    32,    73,   700,   701,
      -1,    -1,    38,   705,    -1,    -1,    -1,    83,    -1,    -1,
      -1,    47,    -1,    49,    -1,    91,    -1,    -1,    -1,    95,
      56,   425,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,
     434,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,
     444,    -1,    -1,   447,    -1,    -1,    -1,    83,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   459,    -1,    -1,    -1,    95,
      96,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,
    1025,  1026,  1027,    -1,    -1,    -1,  1031,  1032,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,   501,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   509,   510,    -1,    -1,   513,
      -1,   515,   516,   517,    -1,    -1,    -1,    -1,   522,    -1,
      -1,    -1,    -1,   527,    -1,    -1,   530,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   836,    34,     4,     5,    -1,    -1,
       8,     9,    -1,    -1,    -1,    -1,    -1,    15,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
     564,    29,    -1,    31,    32,    -1,    -1,    -1,    -1,   871,
      38,    -1,  1127,  1128,  1129,  1130,  1131,  1132,  1133,    47,
    1135,    -1,  1137,  1138,  1139,  1140,  1141,    -1,    56,    -1,
    1145,    59,    60,     3,     4,     5,     6,     7,     8,     9,
      -1,    -1,    -1,    -1,    -1,    15,    -1,    -1,    -1,   911,
      -1,   913,    -1,    -1,    -1,  1170,  1171,    -1,  1173,    29,
      -1,    31,    32,  1178,  1179,    -1,  1181,    95,    38,    -1,
      -1,    -1,    -1,    43,    -1,    -1,    -1,    47,    -1,    -1,
      -1,    -1,    -1,     4,     5,    -1,    56,     8,     9,    59,
      60,    -1,    -1,    63,    15,    -1,   155,   156,   157,    -1,
      -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,    29,    -1,
      31,    32,    -1,    83,    -1,    -1,    -1,    38,    -1,    -1,
      -1,    91,   181,    -1,    -1,    95,    47,   989,   990,   693,
     992,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,    60,
      61,   200,   201,   202,    -1,    -1,    -1,    -1,  1263,  1264,
    1265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1022,    -1,    -1,   727,    -1,    -1,    -1,     4,     5,    -1,
     229,     8,     9,    -1,    95,    -1,    -1,    -1,    15,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1304,
    1305,  1306,  1307,  1308,  1309,    32,    -1,  1312,  1313,    -1,
      -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      47,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    56,
      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,   792,    -1,
    1345,    -1,    -1,    -1,    -1,    -1,    73,     3,     4,     5,
       6,     7,     8,     9,    -1,    -1,    83,    -1,    -1,    15,
      -1,  1366,  1367,   312,    -1,    -1,    -1,    -1,    95,    96,
    1375,    -1,    -1,    29,    -1,    31,    32,    -1,   832,   833,
     834,    -1,    38,    -1,  1136,    -1,   840,    43,   842,    -1,
      -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      56,    -1,    -1,    59,    60,    -1,    -1,   861,    -1,    -1,
      -1,   865,   866,   362,   363,   364,    -1,    73,    -1,   873,
      -1,     3,     4,     5,     6,    -1,   880,    83,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,    -1,    95,
       3,     4,     5,     6,     7,     8,     9,   901,    -1,    -1,
      32,    -1,    15,    -1,    -1,  1460,    -1,    -1,  1463,    -1,
    1465,    43,    -1,  1468,    -1,    -1,    29,    -1,    31,    32,
      -1,    -1,    -1,    -1,    56,    38,   425,    59,    60,    -1,
      43,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
      -1,    73,    -1,    56,    -1,    -1,    59,    60,    -1,  1251,
      -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
      73,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,
      -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   493,    -1,   495,   496,   497,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1310,    -1,
     509,   510,    -1,    -1,   513,    -1,   515,   516,   517,   518,
      -1,     4,     5,   522,     7,     8,     9,    -1,   527,  1033,
      13,   530,    15,    -1,    -1,    -1,    -1,    -1,  1340,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,
      -1,  1353,    -1,    -1,    -1,    38,    -1,  1612,  1613,  1614,
      -1,    -1,    -1,    -1,    47,    -1,    49,    -1,    -1,    -1,
      -1,    -1,    -1,    56,    -1,    -1,    59,    60,  1380,    -1,
      -1,    -1,  1384,    -1,    72,    73,    74,    75,    76,    77,
      73,    79,    80,    81,    82,    83,    84,    85,    86,    87,
      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
      -1,    -1,    95,    96,  1669,    -1,    -1,  1419,    -1,    -1,
      -1,    -1,    -1,  1127,  1128,  1129,  1130,  1131,  1132,    -1,
      -1,    81,    -1,  1137,    84,  1139,  1140,  1141,    -1,    -1,
      -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1710,  1711,  1712,   108,    -1,
     110,    -1,    -1,    -1,    -1,    -1,  1170,  1171,  1723,  1173,
    1472,  1473,    -1,    -1,  1178,  1179,    -1,  1181,    -1,    -1,
      -1,    -1,   681,     3,     4,     5,     6,     7,     8,     9,
      -1,    -1,    -1,    -1,    -1,    15,   695,   696,   697,    -1,
      -1,    -1,    -1,    -1,    -1,   704,    -1,  1509,  1510,    -1,
      -1,    -1,    32,  1515,    -1,    -1,    -1,    -1,    38,    -1,
      -1,    -1,    -1,    43,    -1,    -1,    -1,    47,   727,    49,
      -1,   181,    -1,    -1,    -1,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     200,   201,   202,    73,    -1,    -1,    -1,    -1,    -1,    -1,
     210,     4,     5,    83,     7,     8,     9,     3,     4,     5,
       6,    91,    15,     9,    -1,    95,    -1,    -1,    -1,   229,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,
      -1,    -1,    -1,   792,    -1,    38,    32,    -1,    -1,    -1,
    1304,  1305,  1306,    -1,    47,    -1,   256,    43,  1312,  1313,
      -1,    -1,    -1,    56,    -1,    -1,    59,    60,    -1,    -1,
      56,    -1,  1624,    59,    60,    -1,   276,    -1,    -1,    -1,
      -1,    -1,    -1,   832,   833,   834,    -1,    73,    -1,    -1,
      -1,  1345,    -1,   842,    -1,    -1,    -1,    83,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    91,     4,     5,    -1,    95,
      -1,     9,   861,  1367,    -1,   864,   865,   866,   867,   868,
     869,  1375,    -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,
      -1,   880,    -1,    -1,    32,    -1,    -1,    -1,     3,     4,
       5,     6,    -1,    -1,     9,    -1,    -1,     3,     4,     5,
       6,    49,    -1,     9,    -1,    -1,    -1,    -1,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    -1,    32,   368,   369,
     919,   920,   921,    -1,    -1,    73,    32,    -1,    43,    -1,
      -1,    -1,    -1,   932,    -1,    83,    -1,    43,   388,   389,
      -1,    56,    -1,    -1,    59,    60,    -1,    95,    96,    -1,
      56,    -1,    -1,    59,    60,    -1,  1460,    -1,    73,    -1,
      -1,  1465,    -1,    -1,  1468,    -1,    -1,    73,    83,    -1,
      -1,    -1,    -1,    -1,    -1,   425,    91,    83,    -1,    -1,
      95,    -1,    -1,    -1,   196,    91,    -1,    -1,    -1,    95,
      -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1006,  1007,    -1,
      -1,  1010,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      32,    -1,  1021,    -1,    -1,    -1,  1025,  1026,  1027,    -1,
      -1,    43,  1031,     3,     4,     5,     6,    -1,    -1,    -1,
      -1,    -1,    -1,   493,    56,   495,   496,    59,    60,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   509,
     510,    73,    32,   513,    -1,   515,   516,   517,   518,    -1,
      -1,    83,   522,    43,    -1,    -1,    -1,   527,    -1,    91,
     530,    -1,    -1,    95,    -1,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,  1612,  1613,
    1614,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    91,    -1,    -1,    -1,    95,    -1,    -1,  1127,  1128,
    1129,  1130,  1131,  1132,  1133,    -1,    -1,    -1,  1137,    -1,
    1139,  1140,  1141,    -1,     3,     4,     5,     6,    -1,    -1,
      -1,    -1,  1151,  1152,  1153,    -1,    -1,    -1,    -1,     3,
       4,     5,     6,    -1,    -1,  1669,    -1,    -1,    -1,    -1,
     382,  1170,    -1,    32,    -1,    -1,    -1,    -1,    -1,  1178,
      -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,    32,    -1,
      -1,    -1,    -1,     3,     4,     5,     6,    56,    -1,    43,
      59,    60,    -1,    -1,    -1,    -1,  1710,  1711,  1712,    -1,
      -1,    -1,    56,    -1,    73,    59,    60,    -1,    -1,  1723,
      -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    73,
      -1,    -1,    91,    43,  1233,  1234,    95,  1236,    -1,    83,
      -1,    -1,   111,   112,    -1,    -1,    56,    91,  1247,    59,
      60,    95,    -1,    -1,    -1,    65,  1255,   707,   708,    -1,
      -1,    -1,    -1,    73,  1263,  1264,  1265,    -1,    -1,    -1,
      -1,   483,   484,    83,    -1,    -1,    -1,   727,    -1,    -1,
      -1,    91,    -1,    -1,    -1,    95,    -1,    -1,     3,     4,
       5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
       4,     5,     6,    -1,    -1,  1304,  1305,  1306,  1307,  1308,
    1309,    -1,    -1,  1312,  1313,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    43,  1328,
    1329,  1330,  1331,  1332,    -1,    -1,    -1,    -1,    -1,    43,
      -1,    56,   792,    -1,    59,    60,  1345,    -1,    -1,    -1,
      65,    -1,    56,    -1,    -1,    59,    60,    -1,    73,    -1,
      -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    83,    73,
      -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,    83,
      95,    -1,   832,   833,   834,    -1,    -1,    91,    -1,   839,
     840,    95,   842,    -1,    -1,    -1,    -1,    -1,    -1,   611,
      -1,    -1,    -1,    -1,    -1,    -1,   618,    -1,    -1,    -1,
      -1,   861,    -1,    -1,   864,   865,   866,   867,   868,   869,
     870,    -1,    -1,   873,     4,     5,    -1,     7,     8,     9,
     880,    -1,   644,    13,    -1,    15,    -1,    -1,  1437,  1438,
      -1,  1440,    -1,    -1,    -1,  1444,    -1,    -1,    -1,    29,
     900,    31,    32,    -1,    -1,    -1,    -1,   669,    38,    -1,
      -1,  1460,    -1,   675,    -1,   677,   678,    47,    -1,    -1,
      -1,    -1,    -1,    -1,   343,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,   711,
      -1,    -1,  1501,  1502,  1503,  1504,  1505,    -1,    -1,   721,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    -1,   740,   741,
     742,   743,    -1,   745,   746,   747,   748,   749,   750,   751,
     752,   753,   754,   755,   756,   757,   758,   759,   760,   761,
     762,   763,     4,     5,   423,     7,     8,     9,    -1,    -1,
    1559,    13,    -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
      32,    -1,  1032,  1033,  1034,    -1,    38,    -1,    -1,    -1,
      -1,    -1,    -1,    13,    -1,    47,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    56,    -1,    -1,    59,    60,    -1,
      -1,   823,    -1,  1612,    -1,  1614,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     842,    -1,   501,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   856,    65,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    -1,
    1669,    -1,    -1,    -1,    -1,    -1,    -1,  1127,  1128,  1129,
    1130,  1131,  1132,  1133,    -1,  1135,    -1,  1137,  1138,  1139,
    1140,  1141,    -1,    -1,    -1,  1145,    -1,    -1,    -1,    -1,
      -1,  1151,  1152,  1153,     4,     5,    -1,    -1,     8,     9,
      -1,  1710,  1711,  1712,    -1,    15,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1723,    -1,    -1,    -1,  1178,    29,
      -1,    31,    32,    -1,    -1,    -1,    -1,   949,    38,    -1,
      -1,    -1,    -1,   612,    -1,   614,    -1,    47,    -1,    -1,
     619,   620,   621,   622,   623,    -1,    56,    -1,    -1,    59,
      60,    -1,    -1,   632,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   986,   987,   645,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,  1001,
      -1,  1003,    -1,  1005,    23,    24,    -1,    -1,    -1,    -1,
      -1,    -1,    31,    32,    -1,    34,    -1,    -1,    -1,   678,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,
      -1,    -1,     8,     9,    -1,    -1,    -1,    -1,   697,    15,
      -1,    -1,    -1,    -1,  1046,   704,    -1,    -1,    -1,    68,
      -1,    -1,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,
      -1,    -1,    38,    -1,  1304,  1305,  1306,  1307,  1308,  1309,
      -1,    47,  1312,  1313,    -1,    -1,    -1,  1079,    -1,    -1,
      56,    -1,    -1,    59,    60,    -1,    -1,    -1,  1328,  1329,
    1330,  1331,  1332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1345,    -1,    -1,    -1,   128,
      -1,   130,    -1,    -1,    -1,  1117,    -1,    -1,   137,   138,
      -1,    -1,    -1,    -1,    -1,    -1,  1366,   146,   147,    -1,
      -1,   150,   151,   152,    -1,   154,   155,   156,   157,    -1,
      -1,    -1,    -1,    -1,    -1,  1147,  1148,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    -1,    -1,    -1,  1169,    -1,    -1,
      -1,   362,   363,   364,    -1,   834,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   842,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1437,  1438,  1439,
    1440,    -1,    -1,    -1,  1444,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1217,  1218,    -1,    -1,    -1,
    1460,    -1,    -1,    -1,    -1,    -1,   245,   246,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    -1,   904,    -1,    -1,    -1,    -1,
     269,   910,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1501,  1502,  1503,  1504,  1505,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1275,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   312,  1296,    -1,  1298,    -1,  1300,    -1,
    1302,    -1,   493,    -1,   495,   496,   497,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1559,
      -1,    -1,    -1,    -1,   983,    -1,    -1,    -1,    -1,    -1,
      -1,  1333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   360,    -1,   362,   363,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1357,    -1,    -1,  1017,    -1,
      -1,    -1,    -1,    -1,  1023,    -1,    -1,    -1,  1027,    -1,
      -1,    -1,  1612,    -1,  1614,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1395,   413,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   434,    -1,   436,    -1,    -1,
      -1,    -1,  1424,    -1,    -1,   444,    -1,    -1,   447,  1669,
      -1,    -1,    -1,  1092,    -1,  1094,    -1,    -1,    -1,    -1,
     459,    -1,    -1,    -1,  1446,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1456,  1457,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1710,  1711,  1712,  1132,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1141,  1723,  1486,    -1,    -1,    -1,    -1,    -1,
      -1,  1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   695,   696,   697,    -1,    -1,    -1,
      -1,    -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,
    1522,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   548,
     549,    -1,    -1,    -1,    -1,  1194,    -1,  1196,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   564,    -1,  1206,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1567,  1568,    -1,    -1,    -1,
      -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   606,    -1,   608,
      -1,    -1,  1594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   792,    -1,    -1,    -1,    -1,  1265,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    80,    81,    82,    83,    84,    85,    86,    87,    -1,
    1632,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   832,   833,   834,    -1,    -1,    -1,    -1,    -1,    -1,
    1309,   842,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   681,    -1,    -1,    -1,    -1,  1669,    -1,    -1,
      -1,    -1,    -1,   692,   693,    -1,   695,   696,    -1,    -1,
      -1,    -1,  1341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1694,    -1,    -1,  1354,    66,    67,    68,    69,
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
      -1,   932,    -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   776,    -1,    -1,
      -1,   109,    -1,    -1,   783,   784,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1442,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   818,
      -1,    -1,    -1,  1805,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1006,  1007,    -1,    -1,  1010,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1021,    -1,    -1,    -1,  1025,  1026,  1027,    -1,    -1,    -1,
    1031,    -1,    -1,    -1,  1503,    -1,    -1,    -1,    -1,    62,
      -1,    -1,  1511,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,
      -1,   900,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1557,    -1,
     919,   920,   921,   922,    -1,    -1,    -1,    -1,    -1,    -1,
      62,    -1,    -1,   932,    66,    67,    68,    69,    70,    71,
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,  1127,  1128,  1129,  1130,
    1131,  1132,  1133,    -1,    -1,    -1,  1137,    -1,  1139,  1140,
    1141,    65,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
      84,    85,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1006,  1007,    -1,
      -1,  1010,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
       5,     6,  1021,     8,     9,    10,    11,    12,    -1,    14,
      15,    -1,  1031,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,
      55,    56,    -1,  1712,    59,    60,  1247,    -1,    63,    64,
      -1,    -1,    -1,    -1,  1255,    70,    -1,    -1,    73,    -1,
      -1,    -1,  1263,  1264,  1265,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,
      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
       3,     4,     5,     6,     7,     8,     9,   112,    -1,    -1,
      13,    -1,    15,  1304,  1305,  1306,  1307,  1308,  1309,    -1,
      -1,  1312,  1313,    26,    -1,    28,    -1,    -1,    -1,    32,
      -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
      43,    -1,    -1,    -1,    47,  1164,    49,    -1,  1167,    -1,
      -1,  1170,    -1,    56,    -1,    -1,    59,    60,    61,    62,
      63,    -1,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    -1,    89,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    -1,    -1,    -1,    -1,
     103,   104,    -1,    -1,    -1,    -1,   109,   110,   111,    -1,
     113,    -1,    -1,    -1,  1233,  1234,    -1,  1236,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1247,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1255,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1263,  1264,  1437,  1438,    -1,  1440,
      -1,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
      12,    -1,    14,    15,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1294,    -1,    29,    30,    31,
      32,    33,    -1,    35,    36,    37,    38,    -1,    40,    41,
      42,    43,    44,    45,    -1,    47,    -1,    49,    -1,    51,
      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    -1,
    1501,  1502,  1503,  1504,  1505,    -1,    -1,  1336,    70,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
      -1,    -1,    -1,    95,    96,    -1,    -1,    -1,  1367,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,     1,  1559,     3,
       4,     5,     6,     7,     8,     9,    10,    11,    12,    -1,
      14,    15,    16,    -1,    18,    19,    20,    21,    22,    23,
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
      44,    45,    46,    47,    48,    -1,    -1,    51,    52,    53,
      54,    55,    56,    -1,    -1,    59,    60,    61,    -1,    63,
      64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,
      -1,    -1,    -1,    -1,  1463,    -1,  1465,    81,    82,    83,
      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,
      -1,    95,    -1,    97,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,     1,
      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
      12,    -1,    14,    15,    16,    -1,    18,    19,    20,    21,
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
      32,    33,    -1,    35,    36,    37,    38,    -1,    40,    41,
      42,    43,    44,    45,    46,    47,    48,    -1,    -1,    51,
      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    61,
      -1,    63,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
      -1,    -1,    -1,    95,     1,    97,     3,     4,     5,     6,
       7,     8,     9,    10,    11,    12,    13,    14,    15,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    32,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    49,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    61,    -1,    -1,    64,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,    96,
       1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
      11,    12,    13,    14,    15,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
      31,    32,    33,    -1,    35,    36,    37,    38,    -1,    40,
      41,    42,    43,    44,    45,    -1,    47,    -1,    49,    -1,
      51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
      61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,
      -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,
      91,    -1,    -1,    -1,    95,    96,     1,    -1,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,
      55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,     1,
      95,     3,     4,     5,     6,     7,     8,     9,    10,    11,
      12,    -1,    14,    15,    -1,   110,    -1,   112,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
      32,    33,    -1,    35,    36,    37,    38,    -1,    40,    41,
      42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,
      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    61,
      -1,    63,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
      -1,    -1,     1,    95,     3,     4,     5,     6,    -1,     8,
       9,    10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      29,    30,    31,    -1,    33,    -1,    35,    36,    37,    38,
      -1,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
      -1,    -1,    51,    52,    53,    54,    55,    56,    -1,    -1,
      59,    60,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
      -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
      89,    90,    91,    -1,    -1,    -1,    95,    96,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   111,   112,     1,    -1,     3,     4,     5,     6,
      -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    32,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    61,    -1,    -1,    64,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,     1,    95,     3,
       4,     5,     6,    -1,     8,     9,    10,    11,    12,    -1,
      14,    15,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
      44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,
      54,    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,
      64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,
      -1,    95,    96,     1,    -1,     3,     4,     5,     6,    -1,
       8,     9,    10,    11,    12,    -1,    14,    15,   112,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
      38,    -1,    40,    41,    42,    43,    44,    45,    -1,    47,
      -1,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
      -1,    59,    60,    61,    -1,    -1,    64,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
      -1,    89,    90,    91,    -1,    -1,    -1,    95,     1,    -1,
       3,     4,     5,     6,   102,     8,     9,    10,    11,    12,
      -1,    14,    15,    -1,   112,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    61,    -1,
      -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,     1,    95,     3,     4,     5,     6,    -1,     8,     9,
      10,    11,    12,    -1,    14,    15,    -1,    -1,   111,   112,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
      30,    31,    -1,    33,    -1,    35,    36,    37,    38,    -1,
      40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
      -1,    51,    52,    53,    54,    55,    56,    -1,    -1,    59,
      60,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
      70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,
      90,    91,    -1,    -1,     1,    95,     3,     4,     5,     6,
      -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
      -1,   111,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    32,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    61,    -1,    -1,    64,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,     1,    95,     3,
       4,     5,     6,    -1,     8,     9,    10,    11,    12,    -1,
      14,    15,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
      44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,
      54,    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,
      64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,
       1,    95,     3,     4,     5,     6,    -1,     8,     9,    10,
      11,    12,    -1,    14,    15,    -1,    -1,    -1,   112,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
      31,    -1,    33,    -1,    35,    36,    37,    38,    -1,    40,
      41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
      51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
      -1,    -1,    -1,    64,    65,    -1,    -1,    -1,    -1,    70,
      -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,
      91,    -1,    -1,     1,    95,     3,     4,     5,     6,    -1,
       8,     9,    10,    11,    12,    -1,    14,    15,    -1,    -1,
      -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
      38,    -1,    40,    41,    42,    43,    44,    45,    -1,    47,
      -1,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
      -1,    89,    90,    91,    -1,    -1,     1,    95,     3,     4,
       5,     6,    -1,     8,     9,    10,    11,    12,    -1,    14,
      15,    -1,   110,    -1,   112,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,
      55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,     1,
      95,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
      12,    -1,    14,    15,    -1,    -1,    -1,   112,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
      -1,    33,    -1,    35,    36,    37,    38,    -1,    40,    41,
      42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,
      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    -1,
      -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
      -1,    -1,     1,    95,     3,     4,     5,     6,    -1,     8,
       9,    10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      29,    30,    31,    -1,    33,    -1,    35,    36,    37,    38,
      -1,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
      -1,    -1,    51,    52,    53,    54,    55,    56,    -1,    -1,
      59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,
      -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
      89,    90,    91,    -1,    -1,    -1,    95,     3,     4,     5,
       6,    -1,     8,     9,    10,    11,    12,    -1,    14,    15,
      -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
      36,    37,    38,    -1,    40,    41,    42,    43,    44,    45,
      -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,    55,
      56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
      -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
      -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,
       3,     4,     5,     6,    -1,     8,     9,    10,    11,    12,
      -1,    14,    15,    -1,    -1,    -1,   112,   113,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,
      -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,    -1,    95,     3,     4,     5,     6,    -1,     8,     9,
      10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,   112,
     113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
      30,    31,    -1,    33,    -1,    35,    36,    37,    38,    -1,
      40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
      -1,    51,    52,    53,    54,    55,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
      70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,
      90,    91,    -1,    -1,    -1,    95,     3,     4,     5,     6,
      -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
      -1,    -1,   112,   113,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,     3,
       4,     5,     6,    -1,     8,     9,    10,    11,    12,    -1,
      14,    15,    -1,    -1,    -1,   112,   113,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
      44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,
      54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,
      64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,
      -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,   113,
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
      -1,    14,    15,    16,    -1,    18,    19,    20,    21,    22,
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    46,    47,    48,    -1,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    61,    -1,
      63,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,    -1,    95,    -1,    97,     3,     4,     5,     6,     7,
       8,     9,    10,    11,    12,    -1,    14,    15,    16,   112,
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    -1,    40,    41,    42,    43,    44,    45,    46,    47,
      48,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
      -1,    59,    60,    -1,    -1,    63,    64,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
      -1,    89,    90,    91,    -1,    -1,    -1,    95,    -1,    97,
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
      13,    14,    15,    -1,   112,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    -1,    47,    -1,    49,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,
      -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,    -1,    95,    96,     3,     4,     5,     6,     7,     8,
       9,    10,    11,    12,    13,    14,    15,    -1,    -1,   112,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
      -1,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
      49,    -1,    51,    52,    53,    54,    55,    56,    -1,    -1,
      59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,
      -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
      89,    90,    91,    -1,    -1,    -1,    95,    96,     3,     4,
       5,     6,    -1,     8,     9,    10,    11,    12,    -1,    14,
      15,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    49,    -1,    51,    52,    53,    54,
      55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,
      95,    96,     3,     4,     5,     6,    -1,     8,     9,    10,
      11,    12,    -1,    14,    15,    -1,    -1,   112,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
      31,    32,    33,    -1,    35,    36,    37,    38,    -1,    40,
      41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
      51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
      -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,
      -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,
      91,    -1,    -1,    -1,    95,     3,     4,     5,     6,    -1,
       8,     9,    10,    11,    12,    -1,    14,    15,    -1,    -1,
      -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
      38,    -1,    40,    41,    42,    43,    44,    45,    -1,    47,
      -1,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
      -1,    89,    90,    91,    -1,    -1,    -1,    95,     3,     4,
       5,     6,    -1,     8,     9,    10,    11,    12,    -1,    14,
      15,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,
      55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,
      95,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
      12,    -1,    14,    15,    -1,    -1,    -1,   112,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
      -1,    33,    -1,    35,    36,    37,    38,    -1,    40,    41,
      42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,
      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    -1,
      -1,    63,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
      -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
      82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
      -1,    -1,    -1,    95,     3,     4,     5,     6,     7,     8,
       9,    10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,
     112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
      -1,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
      -1,    -1,    51,    52,    53,    54,    55,    56,    -1,    -1,
      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
      89,    90,    91,    -1,    -1,    -1,    95,     3,     4,     5,
       6,    -1,     8,     9,    10,    11,    12,    -1,    14,    15,
      -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,    35,
      36,    37,    38,    -1,    40,    41,    42,    43,    44,    45,
      -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,    55,
      56,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
      -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
      -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,
       3,     4,     5,     6,    -1,     8,     9,    10,    11,    12,
      -1,    14,    15,    -1,    -1,    -1,   112,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,
      -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,    -1,    95,     3,     4,     5,     6,    -1,     8,     9,
      10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,   112,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
      30,    31,    -1,    33,    -1,    35,    36,    37,    38,    -1,
      40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
      -1,    51,    52,    53,    54,    55,    56,    -1,    -1,    59,
      60,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,
      90,    91,    -1,    -1,    -1,    95,     3,     4,     5,     6,
      -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
      -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,    96,
       3,     4,     5,     6,    -1,     8,     9,    10,    11,    12,
      -1,    14,    15,    -1,    -1,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
      33,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
      43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,
      53,    54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,
      -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
      83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,
      -1,    -1,    95,     3,     4,     5,     6,    -1,     8,     9,
      10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,   112,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
      30,    31,    32,    33,    -1,    35,    36,    37,    38,    -1,
      40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
      -1,    51,    52,    53,    54,    55,    56,    -1,    -1,    59,
      60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      70,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,
      90,    91,    -1,    -1,    -1,    95,     3,     4,     5,     6,
      -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
      -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
      37,    38,    -1,    40,    41,    42,    43,    44,    45,    -1,
      47,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
      -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,
      -1,    -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
      -1,    -1,    89,    90,    91,    -1,    -1,    -1,    95,     3,
       4,     5,     6,    -1,     8,     9,    10,    11,    12,    -1,
      14,    15,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
      44,    45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,
      54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,
      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,
      -1,    95,     3,     4,     5,     6,    -1,     8,     9,    10,
      11,    12,    -1,    14,    15,    -1,    -1,    -1,   112,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
      31,    -1,    33,    -1,    35,    36,    37,    38,    -1,    40,
      41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
      51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
      -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,
      91,    -1,    -1,    -1,    95,     3,     4,     5,     6,    -1,
       8,     9,    10,    11,    12,    -1,    14,    15,    -1,    -1,
      -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
      38,    -1,    40,    41,    42,    43,    44,    45,    -1,    47,
      -1,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
      -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    73,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
      -1,    89,    90,    91,    -1,    -1,    -1,    95,     3,     4,
       5,     6,    -1,     8,     9,    10,    11,    12,    -1,    14,
      15,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
      35,    36,    37,    38,    -1,    40,    41,    42,    43,    44,
      45,    -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,
      55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
      -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,
      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    66,    67,
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
      76,    77,    -1,    79,    80,    81,    82,    83,    84,    85,
      86,    87
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/share/bison/bison.simple"

/* Skeleton output parser for bison,

   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
   Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* This is the parser code that is written into each bison parser when
   the %semantic_parser declaration is not specified in the grammar.
   It was written by Richard Stallman by simplifying the hairy parser
   used when %semantic_parser is specified.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# if YYSTACK_USE_ALLOCA
#  define YYSTACK_ALLOC alloca
# else
#  ifndef YYSTACK_USE_ALLOCA
#   if defined (alloca) || defined (_ALLOCA_H)
#    define YYSTACK_ALLOC alloca
#   else
#    ifdef __GNUC__
#     define YYSTACK_ALLOC __builtin_alloca
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning. */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
#  if defined (__STDC__) || defined (__cplusplus)
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   define YYSIZE_T size_t
#  endif
#  define YYSTACK_ALLOC malloc
#  define YYSTACK_FREE free
# endif

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  short yyss;
  YYSTYPE yyvs;
# if YYLSP_NEEDED
  YYLTYPE yyls;
# endif
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# if YYLSP_NEEDED
#  define YYSTACK_BYTES(N) \
     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
      + 2 * YYSTACK_GAP_MAX)
# else
#  define YYSTACK_BYTES(N) \
     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
      + YYSTACK_GAP_MAX)
# endif

/* Relocate the TYPE STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Type, Stack)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	yymemcpy ((char *) yyptr, (char *) (Stack),			\
		  yysize * (YYSIZE_T) sizeof (Type));			\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX;	\
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (0)

#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */


#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#endif
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# endif
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#endif

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	goto yyacceptlab
#define YYABORT 	goto yyabortlab
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { 								\
      yyerror ("syntax error: cannot back up");			\
      YYERROR;							\
    }								\
while (0)

#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Compute the default location (before the actions
   are run).

   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
   first token.  By default, to implement support for ranges, extend
   its range to the last symbol.  */

#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)       	\
   Current.last_line   = Rhs[N].last_line;	\
   Current.last_column = Rhs[N].last_column;
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#if YYPURE
# if YYLSP_NEEDED
#  ifdef YYLEX_PARAM
#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM)
#  else
#   define YYLEX		yylex (&yylval, &yylloc)
#  endif
# else /* !YYLSP_NEEDED */
#  ifdef YYLEX_PARAM
#   define YYLEX		yylex (&yylval, YYLEX_PARAM)
#  else
#   define YYLEX		yylex (&yylval)
#  endif
# endif /* !YYLSP_NEEDED */
#else /* !YYPURE */
# define YYLEX			yylex ()
#endif /* !YYPURE */


/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include "../include/stdio.h" /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (0)
/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
#endif /* !YYDEBUG */

/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#if YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif

#if ! defined (yyoverflow) && ! defined (yymemcpy)
# if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#  define yymemcpy __builtin_memcpy
# else				/* not GNU C or C++ */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
#  if defined (__STDC__) || defined (__cplusplus)
yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T yycount)
#  else
yymemcpy (yyto, yyfrom, yycount)
     char *yyto;
     const char *yyfrom;
     YYSIZE_T yycount;
#  endif
{
  register const char *yyf = yyfrom;
  register char *yyt = yyto;
  register YYSIZE_T yyi = yycount;

  while (yyi-- != 0)
    *yyt++ = *yyf++;
}
# endif
#endif

#ifdef YYERROR_VERBOSE

# ifndef yystrlen
#  if defined (__GLIBC__) && defined (_STRING_H)
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
static YYSIZE_T
#   if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
#   else
yystrlen (yystr)
     const char *yystr;
#   endif
{
  register const char *yys = yystr;

  while (*yys++ != '\0')
    continue;

  return yys - yystr - 1;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
static char *
#   if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
#   else
yystpcpy (yydest, yysrc)
     char *yydest;
     const char *yysrc;
#   endif
{
  register char *yyd = yydest;
  register const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif
#endif

#line 319 "/usr/share/bison/bison.simple"


/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#  define YYPARSE_PARAM_DECL
# else
#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
# endif
#else /* !YYPARSE_PARAM */
# define YYPARSE_PARAM_ARG
# define YYPARSE_PARAM_DECL
#endif /* !YYPARSE_PARAM */

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
# ifdef YYPARSE_PARAM
int yyparse (void *);
# else
int yyparse (void);
# endif
#endif

/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
   variables are global, or local to YYPARSE.  */

#define YY_DECL_NON_LSP_VARIABLES			\
/* The lookahead symbol.  */				\
int yychar;						\
							\
/* The semantic value of the lookahead symbol. */	\
YYSTYPE yylval;						\
							\
/* Number of parse errors so far.  */			\
int yynerrs;

#if YYLSP_NEEDED
# define YY_DECL_VARIABLES			\
YY_DECL_NON_LSP_VARIABLES			\
						\
/* Location data for the lookahead symbol.  */	\
YYLTYPE yylloc;
#else
# define YY_DECL_VARIABLES			\
YY_DECL_NON_LSP_VARIABLES
#endif


/* If nonreentrant, generate the variables here. */

#if !YYPURE
YY_DECL_VARIABLES
#endif  /* !YYPURE */

int
yyparse (YYPARSE_PARAM_ARG)
     YYPARSE_PARAM_DECL
{
  /* If reentrant, generate the variables here. */
#if YYPURE
  YY_DECL_VARIABLES
#endif  /* !YYPURE */

  register int yystate;
  register int yyn;
  int yyresult;
  /* Number of tokens to shift before error messages enabled.  */
  int yyerrstatus;
  /* Lookahead token as an internal (translated) token number.  */
  int yychar1 = 0;

  /* Three stacks and their tools:
     `yyss': related to states,
     `yyvs': related to semantic values,
     `yyls': related to locations.

     Refer to the stacks thru separate pointers, to allow yyoverflow
     to reallocate them elsewhere.  */

  /* The state stack. */
  short	yyssa[YYINITDEPTH];
  short *yyss = yyssa;
  register short *yyssp;

  /* The semantic value stack.  */
  YYSTYPE yyvsa[YYINITDEPTH];
  YYSTYPE *yyvs = yyvsa;
  register YYSTYPE *yyvsp;

#if YYLSP_NEEDED
  /* The location stack.  */
  YYLTYPE yylsa[YYINITDEPTH];
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;
#endif

#if YYLSP_NEEDED
# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
# define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  YYSIZE_T yystacksize = YYINITDEPTH;


  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;
#if YYLSP_NEEDED
  YYLTYPE yyloc;
#endif

  /* When reducing, the number of symbols on the RHS of the reduced
     rule. */
  int yylen;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss;
  yyvsp = yyvs;
#if YYLSP_NEEDED
  yylsp = yyls;
#endif
  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed. so pushing a state here evens the stacks.
     */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack. Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	short *yyss1 = yyss;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  */
# if YYLSP_NEEDED
	YYLTYPE *yyls1 = yyls;
	/* This used to be a conditional around just the two extra args,
	   but that might be undefined if yyoverflow is a macro.  */
	yyoverflow ("parser stack overflow",
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yyls1, yysize * sizeof (*yylsp),
		    &yystacksize);
	yyls = yyls1;
# else
	yyoverflow ("parser stack overflow",
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yystacksize);
# endif
	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	goto yyoverflowlab;
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;

      {
	short *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyoverflowlab;
	YYSTACK_RELOCATE (short, yyss);
	YYSTACK_RELOCATE (YYSTYPE, yyvs);
# if YYLSP_NEEDED
	YYSTACK_RELOCATE (YYLTYPE, yyls);
# endif
# undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;
#if YYLSP_NEEDED
      yylsp = yyls + yysize - 1;
#endif

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  goto yybackup;


/*-----------.
| yybackup.  |
`-----------*/
yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yychar1 = YYTRANSLATE (yychar);

#if YYDEBUG
     /* We have to keep this `#if YYDEBUG', since we use variables
	which are defined only if `YYDEBUG' is set.  */
      if (yydebug)
	{
	  YYFPRINTF (stderr, "Next token is %d (%s",
		     yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise
	     meaning of a token, for further debugging info.  */
# ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
# endif
	  YYFPRINTF (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */
  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
	      yychar, yytname[yychar1]));

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#if YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  yystate = yyn;
  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to the semantic value of
     the lookahead token.  This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];

#if YYLSP_NEEDED
  /* Similarly for the default location.  Let the user run additional
     commands if for instance locations are ranges.  */
  yyloc = yylsp[1-yylen];
  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
#endif

#if YYDEBUG
  /* We have to keep this `#if YYDEBUG', since we use variables which
     are defined only if `YYDEBUG' is set.  */
  if (yydebug)
    {
      int yyi;

      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
		 yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif

  switch (yyn) {

case 1:
#line 456 "parse.y"
{ finish_translation_unit (); ;
    break;}
case 2:
#line 458 "parse.y"
{ finish_translation_unit (); ;
    break;}
case 3:
#line 466 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 468 "parse.y"
{ yyval.ttype = NULL_TREE; ggc_collect (); ;
    break;}
case 5:
#line 470 "parse.y"
{ yyval.ttype = NULL_TREE; ggc_collect (); ;
    break;}
case 8:
#line 479 "parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 484 "parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 489 "parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 12:
#line 498 "parse.y"
{ if (pending_lang_change) do_pending_lang_change();
		  type_lookups = NULL_TREE; ;
    break;}
case 13:
#line 501 "parse.y"
{ if (! toplevel_bindings_p ())
		  pop_everything (); ;
    break;}
case 14:
#line 507 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 15:
#line 509 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 16:
#line 512 "parse.y"
{ warning ("keyword `export' not implemented, and will be ignored"); ;
    break;}
case 17:
#line 514 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 18:
#line 516 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 19:
#line 518 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 20:
#line 521 "parse.y"
{ pop_lang_context (); ;
    break;}
case 21:
#line 523 "parse.y"
{ do_pending_inlines (); pop_lang_context (); ;
    break;}
case 22:
#line 525 "parse.y"
{ do_pending_inlines (); pop_lang_context (); ;
    break;}
case 23:
#line 527 "parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 24:
#line 529 "parse.y"
{ pop_namespace (); ;
    break;}
case 25:
#line 531 "parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 26:
#line 533 "parse.y"
{ pop_namespace (); ;
    break;}
case 28:
#line 536 "parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 30:
#line 539 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 31:
#line 544 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 32:
#line 546 "parse.y"
{
		  end_only_namespace_names ();
		  if (lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
		;
    break;}
case 33:
#line 556 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 34:
#line 558 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 35:
#line 560 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 36:
#line 565 "parse.y"
{ yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 37:
#line 567 "parse.y"
{ yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
    break;}
case 38:
#line 569 "parse.y"
{ yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 39:
#line 574 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 40:
#line 576 "parse.y"
{
		  end_only_namespace_names ();
		  /* If no declaration was found, the using-directive is
		     invalid. Since that was not reported, we need the
		     identifier for the error message. */
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_using_directive (yyvsp[-1].ttype);
		;
    break;}
case 41:
#line 589 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 42:
#line 595 "parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 45:
#line 607 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 46:
#line 609 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 47:
#line 614 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 48:
#line 616 "parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
		    error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
		  pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
    break;}
case 49:
#line 623 "parse.y"
{ begin_template_parm_list (); ;
    break;}
case 50:
#line 625 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 51:
#line 630 "parse.y"
{ begin_specialization(); 
		  yyval.ttype = NULL_TREE; ;
    break;}
case 54:
#line 641 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 55:
#line 643 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 56:
#line 648 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 57:
#line 650 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 58:
#line 655 "parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 59:
#line 657 "parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
    break;}
case 60:
#line 662 "parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 61:
#line 674 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 62:
#line 676 "parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 63:
#line 678 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 64:
#line 680 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 65:
#line 682 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 66:
#line 684 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
		      && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
		      && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL
		      && TREE_CODE (yyvsp[0].ttype) != UNBOUND_CLASS_TEMPLATE)
		    {
		      error ("invalid default template argument");
		      yyvsp[0].ttype = error_mark_node;
		    }
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
		;
    break;}
case 67:
#line 699 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 68:
#line 701 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 69:
#line 706 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 70:
#line 708 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 71:
#line 710 "parse.y"
{ do_pending_inlines (); ;
    break;}
case 72:
#line 712 "parse.y"
{ do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 73:
#line 715 "parse.y"
{ do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 74:
#line 718 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 76:
#line 724 "parse.y"
{;
    break;}
case 77:
#line 726 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 78:
#line 728 "parse.y"
{
		  if (yyvsp[-1].ftype.t != error_mark_node)
                    {
		      maybe_process_partial_specialization (yyvsp[-1].ftype.t);
		      note_got_semicolon (yyvsp[-1].ftype.t);
	            }
                ;
    break;}
case 80:
#line 740 "parse.y"
{;
    break;}
case 81:
#line 742 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 82:
#line 744 "parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 84:
#line 747 "parse.y"
{
		  tree t, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
		  shadow_tag (t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 87:
#line 756 "parse.y"
{ end_input (); ;
    break;}
case 97:
#line 782 "parse.y"
{ yyval.ttype = begin_compound_stmt (/*has_no_scope=*/1); ;
    break;}
case 98:
#line 784 "parse.y"
{
		  STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype;
		  finish_compound_stmt (/*has_no_scope=*/1, yyvsp[-1].ttype);
		  finish_function_body (yyvsp[-5].ttype);
		;
    break;}
case 99:
#line 793 "parse.y"
{ expand_body (finish_function (0)); ;
    break;}
case 100:
#line 795 "parse.y"
{ expand_body (finish_function (0)); ;
    break;}
case 101:
#line 797 "parse.y"
{ ;
    break;}
case 102:
#line 802 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 103:
#line 804 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 104:
#line 806 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 105:
#line 810 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 106:
#line 812 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 107:
#line 814 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 108:
#line 818 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 109:
#line 820 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 110:
#line 822 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 111:
#line 826 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 112:
#line 828 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 113:
#line 830 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 114:
#line 837 "parse.y"
{ check_for_new_type ("return type", yyvsp[-1].ftype);
		  if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 115:
#line 841 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 116:
#line 844 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 117:
#line 847 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 118:
#line 850 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 119:
#line 859 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 120:
#line 862 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 121:
#line 864 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 122:
#line 866 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 123:
#line 868 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 124:
#line 870 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 125:
#line 877 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  snarf_method (yyval.ttype); ;
    break;}
case 126:
#line 885 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 127:
#line 888 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
    break;}
case 128:
#line 890 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
    break;}
case 129:
#line 892 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 130:
#line 895 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
    break;}
case 131:
#line 897 "parse.y"
{ yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 132:
#line 903 "parse.y"
{
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 133:
#line 910 "parse.y"
{ finish_named_return_value (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 134:
#line 912 "parse.y"
{ finish_named_return_value (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 135:
#line 914 "parse.y"
{ finish_named_return_value (yyval.ttype, NULL_TREE); ;
    break;}
case 136:
#line 919 "parse.y"
{
		  if (! DECL_CONSTRUCTOR_P (current_function_decl))
		    error ("only constructors take base initializers");
		  else if (yyvsp[0].ftype.new_type_flag == 0)
		    error ("no base or member initializers given following ':'");

		  finish_mem_initializers (yyvsp[0].ftype.t);
		;
    break;}
case 137:
#line 931 "parse.y"
{
		  yyval.ttype = begin_function_body ();
		;
    break;}
case 138:
#line 938 "parse.y"
{ 
		  yyval.ftype.new_type_flag = 0; 
		  yyval.ftype.t = NULL_TREE; 
		;
    break;}
case 139:
#line 943 "parse.y"
{ 
		  yyval.ftype.new_type_flag = 1; 
		  yyval.ftype.t = yyvsp[0].ttype; 
		;
    break;}
case 140:
#line 948 "parse.y"
{ 
		  if (yyvsp[0].ttype) 
		    {
		      yyval.ftype.new_type_flag = 1; 
		      TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ftype.t;
		      yyval.ftype.t = yyvsp[0].ttype;
		    }
		  else
		    yyval.ftype = yyvsp[-2].ftype;
		;
    break;}
case 142:
#line 963 "parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  yyval.ttype = expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 143:
#line 969 "parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  yyval.ttype = expand_member_init (current_class_ref,
					   NULL_TREE, 
					   void_type_node);
		;
    break;}
case 144:
#line 977 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 145:
#line 979 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
					   void_type_node); ;
    break;}
case 146:
#line 982 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 147:
#line 984 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
					   void_type_node); ;
    break;}
case 148:
#line 987 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 149:
#line 989 "parse.y"
{ yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
					   void_type_node); ;
    break;}
case 150:
#line 992 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 162:
#line 1017 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE, 1);
		  yyungetc (';', 1); ;
    break;}
case 164:
#line 1021 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 166:
#line 1025 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 168:
#line 1028 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 170:
#line 1031 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype, 1);
		  yyungetc (';', 1); ;
    break;}
case 172:
#line 1036 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 174:
#line 1040 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 176:
#line 1043 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 178:
#line 1048 "parse.y"
{ begin_explicit_instantiation(); ;
    break;}
case 179:
#line 1052 "parse.y"
{ end_explicit_instantiation(); ;
    break;}
case 180:
#line 1062 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 181:
#line 1065 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 184:
#line 1073 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 185:
#line 1079 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 186:
#line 1083 "parse.y"
{ 
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;

		  yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
					     yychar == SCOPE);
		;
    break;}
case 188:
#line 1095 "parse.y"
{
		  /* Handle `Class<Class<Type>>' without space in the `>>' */
		  pedwarn ("`>>' should be `> >' in template class name");
		  yyungetc ('>', 1);
		;
    break;}
case 189:
#line 1104 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 191:
#line 1110 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 192:
#line 1112 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 193:
#line 1117 "parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 194:
#line 1119 "parse.y"
{
		  yyval.ttype = lastiddecl;
		  if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype))
		    yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 195:
#line 1125 "parse.y"
{
		  yyval.ttype = lastiddecl;
		  if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype))
		    yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 197:
#line 1132 "parse.y"
{
		  if (!processing_template_decl)
		    {
		      error ("use of template qualifier outside template");
		      yyval.ttype = error_mark_node;
		    }
		  else
		    yyval.ttype = make_unbound_class_template (yyvsp[-2].ttype, yyvsp[0].ttype, 1);
		;
    break;}
case 198:
#line 1145 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 199:
#line 1147 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 200:
#line 1149 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 201:
#line 1151 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 202:
#line 1153 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 203:
#line 1158 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 205:
#line 1164 "parse.y"
{ error ("ISO C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 206:
#line 1168 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 207:
#line 1173 "parse.y"
{ error ("ISO C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 208:
#line 1177 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 209:
#line 1182 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 211:
#line 1185 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 212:
#line 1190 "parse.y"
{ {
		  tree d;
		  for (d = getdecls (); d; d = TREE_CHAIN (d))
		    if (TREE_CODE (d) == TYPE_DECL) {
		      tree s = TREE_TYPE (d);
		      if (TREE_CODE (s) == RECORD_TYPE)
			error ("definition of class `%T' in condition", s);
		      else if (TREE_CODE (s) == ENUMERAL_TYPE)
			error ("definition of enum `%T' in condition", s);
		    }
		  }
		  current_declspecs = yyvsp[-4].ftype.t;
		  yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1);
		;
    break;}
case 213:
#line 1205 "parse.y"
{ 
		  parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
		  yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 219:
#line 1223 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
		                  build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 220:
#line 1226 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, 
		                  build_tree_list (NULL_TREE, error_mark_node)); ;
    break;}
case 221:
#line 1229 "parse.y"
{ chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 222:
#line 1231 "parse.y"
{ chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
    break;}
case 223:
#line 1236 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 225:
#line 1242 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 226:
#line 1245 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 227:
#line 1248 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 228:
#line 1250 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 229:
#line 1252 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 230:
#line 1254 "parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 231:
#line 1257 "parse.y"
{ yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
    break;}
case 232:
#line 1259 "parse.y"
{ yyval.ttype = finish_sizeof (yyvsp[0].ttype); ;
    break;}
case 233:
#line 1261 "parse.y"
{ yyval.ttype = finish_sizeof (groktypename (yyvsp[-1].ftype.t));
		  check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
    break;}
case 234:
#line 1264 "parse.y"
{ yyval.ttype = finish_alignof (yyvsp[0].ttype); ;
    break;}
case 235:
#line 1266 "parse.y"
{ yyval.ttype = finish_alignof (groktypename (yyvsp[-1].ftype.t)); 
		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 236:
#line 1272 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 237:
#line 1275 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 238:
#line 1278 "parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 239:
#line 1281 "parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 240:
#line 1285 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
				  NULL_TREE, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 241:
#line 1289 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 242:
#line 1292 "parse.y"
{ yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 243:
#line 1295 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 244:
#line 1299 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 245:
#line 1301 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 246:
#line 1305 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 247:
#line 1309 "parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 248:
#line 1311 "parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 249:
#line 1316 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 250:
#line 1318 "parse.y"
{ pedwarn ("old style placement syntax, use () instead");
		  yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 251:
#line 1324 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 252:
#line 1326 "parse.y"
{ yyval.ttype = void_zero_node; ;
    break;}
case 253:
#line 1328 "parse.y"
{
		  error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 254:
#line 1338 "parse.y"
{
		  if (pedantic)
		    pedwarn ("ISO C++ forbids initialization of new expression with `='");
		  cp_deprecated ("new initializer lists extension");
		  if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
		      && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
		    yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 255:
#line 1353 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
		  yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 256:
#line 1357 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
		  yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 258:
#line 1365 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 259:
#line 1367 "parse.y"
{ 
		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
					nreverse (yyvsp[-2].ttype)); 
		  if (pedantic)
		    pedwarn ("ISO C++ forbids compound literals");
		  /* Indicate that this was a C99 compound literal.  */
		  TREE_HAS_CONSTRUCTOR (init) = 1;

		  yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
		;
    break;}
case 261:
#line 1383 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 262:
#line 1385 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 263:
#line 1387 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 264:
#line 1389 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 265:
#line 1391 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 266:
#line 1393 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 267:
#line 1395 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 268:
#line 1397 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 269:
#line 1399 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 270:
#line 1401 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 271:
#line 1403 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 272:
#line 1405 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 273:
#line 1407 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 274:
#line 1409 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 275:
#line 1411 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 276:
#line 1413 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 277:
#line 1415 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 278:
#line 1417 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 279:
#line 1419 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 280:
#line 1421 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 281:
#line 1423 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
		  if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 282:
#line 1427 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 283:
#line 1429 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 284:
#line 1431 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 286:
#line 1438 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 287:
#line 1440 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 288:
#line 1442 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 289:
#line 1444 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 290:
#line 1446 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 291:
#line 1448 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 292:
#line 1450 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 293:
#line 1452 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 294:
#line 1454 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 295:
#line 1456 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 296:
#line 1458 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 297:
#line 1460 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 298:
#line 1462 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 299:
#line 1464 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 300:
#line 1466 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 301:
#line 1468 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 302:
#line 1470 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 303:
#line 1472 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 304:
#line 1474 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 305:
#line 1476 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
		  if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 306:
#line 1480 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 307:
#line 1482 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 308:
#line 1484 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 309:
#line 1489 "parse.y"
{ yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 310:
#line 1491 "parse.y"
{ yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 316:
#line 1500 "parse.y"
{
		  /* If lastiddecl is a TREE_LIST, it's a baselink, which
		     means that we're in an expression like S::f<int>, so
		     don't do_identifier; we only do that for unqualified
		     identifiers.  */
	          if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST)
		    yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 317:
#line 1514 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 318:
#line 1516 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 319:
#line 1521 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 320:
#line 1523 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 321:
#line 1526 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 326:
#line 1538 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 328:
#line 1548 "parse.y"
{ yyval.ttype = build_nt (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 329:
#line 1550 "parse.y"
{ yyval.ttype = build_nt (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 330:
#line 1552 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 331:
#line 1557 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 332:
#line 1559 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 336:
#line 1569 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 337:
#line 1574 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
		  else 
		    yyval.ttype = finish_id_expr (yyvsp[0].ttype);
		;
    break;}
case 340:
#line 1583 "parse.y"
{
		  yyval.ttype = combine_strings (yyval.ttype);
		  /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
		     a const array the way we want, so fix it.  */
		  if (flag_const_strings)
		    TREE_TYPE (yyval.ttype) = build_cplus_array_type
		      (TREE_TYPE (TREE_TYPE (yyval.ttype)),
		       TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
		;
    break;}
case 341:
#line 1593 "parse.y"
{
		  yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype);
		  if (processing_template_decl)
		    yyval.ttype = build_min_nt (LOOKUP_EXPR, DECL_NAME (yyval.ttype));
		;
    break;}
case 342:
#line 1599 "parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 343:
#line 1601 "parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
		  yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 344:
#line 1604 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 345:
#line 1606 "parse.y"
{ tree scope = current_scope ();
		  if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  if (pedantic)
		    pedwarn ("ISO C++ forbids braced-groups within expressions");  
		  yyval.ttype = begin_stmt_expr (); 
		;
    break;}
case 346:
#line 1617 "parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ;
    break;}
case 347:
#line 1622 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 348:
#line 1624 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
    break;}
case 349:
#line 1626 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
    break;}
case 350:
#line 1628 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
    break;}
case 351:
#line 1630 "parse.y"
{ yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t));
		  check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ;
    break;}
case 352:
#line 1633 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 353:
#line 1635 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
    break;}
case 354:
#line 1637 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
    break;}
case 355:
#line 1640 "parse.y"
{ yyval.ttype = finish_this_expr (); ;
    break;}
case 356:
#line 1642 "parse.y"
{
		  /* This is a C cast in C++'s `functional' notation
		     using the "implicit int" extension so that:
		     `const (3)' is equivalent to `const int (3)'.  */
		  tree type;

		  type = hash_tree_cons (NULL_TREE, yyvsp[-3].ttype, NULL_TREE);
		  type = groktypename (build_tree_list (type, NULL_TREE));
		  yyval.ttype = build_functional_cast (type, yyvsp[-1].ttype);
		;
    break;}
case 358:
#line 1654 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 359:
#line 1658 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("static_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 360:
#line 1662 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 361:
#line 1666 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("const_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 362:
#line 1670 "parse.y"
{ yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
    break;}
case 363:
#line 1672 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
		  check_for_new_type ("typeid", yyvsp[-1].ftype);
		  yyval.ttype = get_typeid (type); ;
    break;}
case 364:
#line 1676 "parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 365:
#line 1678 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 366:
#line 1680 "parse.y"
{
		  got_scope = NULL_TREE;
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 367:
#line 1688 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 368:
#line 1690 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 369:
#line 1692 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 370:
#line 1694 "parse.y"
{ 
		  yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
		;
    break;}
case 371:
#line 1698 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 372:
#line 1700 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 373:
#line 1702 "parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 374:
#line 1704 "parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  else
		    yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 375:
#line 1709 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 376:
#line 1711 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 377:
#line 1713 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 378:
#line 1715 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 379:
#line 1718 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 380:
#line 1720 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 381:
#line 1722 "parse.y"
{
		  yyval.ttype = error_mark_node;
		;
    break;}
case 382:
#line 1767 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 383:
#line 1769 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 384:
#line 1774 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 385:
#line 1776 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 386:
#line 1781 "parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 387:
#line 1783 "parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 389:
#line 1790 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 390:
#line 1795 "parse.y"
{
		  if (DECL_CONSTRUCTOR_P (current_function_decl))
		    finish_mem_initializers (NULL_TREE);
		;
    break;}
case 391:
#line 1803 "parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 392:
#line 1805 "parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype); 
		  got_object = TREE_TYPE (yyval.ttype);
		;
    break;}
case 393:
#line 1813 "parse.y"
{
		  if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
		    note_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 394:
#line 1818 "parse.y"
{
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 395:
#line 1822 "parse.y"
{;
    break;}
case 396:
#line 1824 "parse.y"
{
		  shadow_tag (yyvsp[-1].ftype.t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 397:
#line 1829 "parse.y"
{ warning ("empty declaration"); ;
    break;}
case 398:
#line 1831 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 401:
#line 1845 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
					     NULL_TREE, NULL_TREE); ;
    break;}
case 402:
#line 1848 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
					     NULL_TREE); ;
    break;}
case 403:
#line 1855 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 404:
#line 1858 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 405:
#line 1861 "parse.y"
{ yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 406:
#line 1865 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 407:
#line 1868 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 408:
#line 1879 "parse.y"
{ yyval.ftype.lookups = type_lookups; ;
    break;}
case 409:
#line 1881 "parse.y"
{ yyval.ftype.lookups = type_lookups; ;
    break;}
case 410:
#line 1886 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 411:
#line 1889 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 412:
#line 1892 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 413:
#line 1895 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 414:
#line 1898 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 415:
#line 1901 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
				    chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ftype.t))); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 416:
#line 1908 "parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyval.ttype));
		  yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 417:
#line 1913 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 418:
#line 1915 "parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 419:
#line 1937 "parse.y"
{ yyval.ftype.lookups = NULL_TREE; TREE_STATIC (yyval.ftype.t) = 1; ;
    break;}
case 420:
#line 1939 "parse.y"
{
		  yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
		;
    break;}
case 421:
#line 1944 "parse.y"
{
		  yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  TREE_STATIC (yyval.ftype.t) = 1;
		;
    break;}
case 422:
#line 1949 "parse.y"
{
		  if (extra_warnings && TREE_STATIC (yyval.ftype.t))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  TREE_STATIC (yyval.ftype.t) = TREE_STATIC (yyvsp[-1].ftype.t);
		;
    break;}
case 423:
#line 1957 "parse.y"
{ yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 424:
#line 1968 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 425:
#line 1971 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 426:
#line 1974 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 427:
#line 1977 "parse.y"
{ yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 428:
#line 1983 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 429:
#line 1985 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 430:
#line 1987 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 431:
#line 1989 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 432:
#line 1998 "parse.y"
{ yyval.ftype.lookups = NULL_TREE; ;
    break;}
case 433:
#line 2000 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
    break;}
case 434:
#line 2002 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
    break;}
case 435:
#line 2004 "parse.y"
{ yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
		  yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
    break;}
case 436:
#line 2007 "parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
    break;}
case 437:
#line 2010 "parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

                  yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error ("`sigof' applied to non-aggregate expression");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 438:
#line 2025 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);

                  yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error("`sigof' applied to non-aggregate type");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 439:
#line 2045 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 440:
#line 2047 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 443:
#line 2054 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 445:
#line 2060 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 447:
#line 2066 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 448:
#line 2071 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 449:
#line 2073 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 450:
#line 2078 "parse.y"
{ yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 451:
#line 2081 "parse.y"
{ parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 452:
#line 2083 "parse.y"
{
		  yyval.ttype = parse_decl (yyvsp[-2].ttype, yyvsp[0].ttype, 0);
		  parse_end_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 453:
#line 2097 "parse.y"
{ yyval.ttype = parse_decl0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t,
					   yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, 1); ;
    break;}
case 454:
#line 2102 "parse.y"
{ parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 455:
#line 2104 "parse.y"
{ tree d = parse_decl0 (yyvsp[-2].ttype, yyvsp[-3].ftype.t,
					yyvsp[-3].ftype.lookups, yyvsp[0].ttype, 0);
		  parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 456:
#line 2111 "parse.y"
{;
    break;}
case 457:
#line 2116 "parse.y"
{;
    break;}
case 458:
#line 2121 "parse.y"
{ /* Set things up as initdcl0_innards expects.  */
	      yyval.ttype = yyvsp[0].ttype;
	      yyvsp[0].ttype = yyvsp[-1].ttype; 
              yyvsp[-1].ftype.t = NULL_TREE;
	      yyvsp[-1].ftype.lookups = NULL_TREE; ;
    break;}
case 459:
#line 2127 "parse.y"
{;
    break;}
case 460:
#line 2129 "parse.y"
{ tree d = parse_decl0 (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, yyvsp[0].ttype, 0);
		  parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 461:
#line 2137 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 462:
#line 2139 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 463:
#line 2144 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 464:
#line 2146 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 465:
#line 2151 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 466:
#line 2156 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 467:
#line 2158 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 468:
#line 2163 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 469:
#line 2165 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 470:
#line 2167 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 471:
#line 2169 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 472:
#line 2171 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 477:
#line 2187 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 478:
#line 2189 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 479:
#line 2194 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 480:
#line 2196 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 482:
#line 2205 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 483:
#line 2208 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 484:
#line 2211 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 485:
#line 2214 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 486:
#line 2221 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 487:
#line 2223 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 488:
#line 2226 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 489:
#line 2228 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 490:
#line 2230 "parse.y"
{ yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 491:
#line 2235 "parse.y"
{
		  expand_body (finish_function (2));
		  process_next_inline (yyvsp[-2].pi);
		;
    break;}
case 492:
#line 2240 "parse.y"
{ 
		  expand_body (finish_function (2)); 
                  process_next_inline (yyvsp[-2].pi);
		;
    break;}
case 493:
#line 2245 "parse.y"
{ 
		  finish_function (2); 
		  process_next_inline (yyvsp[-2].pi); ;
    break;}
case 496:
#line 2259 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 497:
#line 2261 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 499:
#line 2267 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 500:
#line 2269 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 501:
#line 2274 "parse.y"
{ yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (yyvsp[-1].ttype); ;
    break;}
case 502:
#line 2277 "parse.y"
{ yyval.ftype.t = current_enum_type;
		  finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-2].ttype;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 503:
#line 2283 "parse.y"
{ yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (make_anon_name ()); ;
    break;}
case 504:
#line 2286 "parse.y"
{ yyval.ftype.t = current_enum_type;
		  finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-2].ttype;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 505:
#line 2292 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 506:
#line 2295 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 507:
#line 2298 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0; 
		  if (!processing_template_decl)
		    pedwarn ("using `typename' outside of template"); ;
    break;}
case 508:
#line 2304 "parse.y"
{
		  if (yyvsp[-1].ttype && yyvsp[-2].ftype.t != error_mark_node)
		    {
		      tree type = TREE_TYPE (yyvsp[-2].ftype.t);
		  
		      if (TREE_CODE (type) == TYPENAME_TYPE)
			/* In a definition of a member class template,
                           we will get here with an implicit typename,
                           a TYPENAME_TYPE with a type. */
			type = TREE_TYPE (type);
		      maybe_process_partial_specialization (type);
		      xref_basetypes (current_aggr, yyvsp[-2].ftype.t, type, yyvsp[-1].ttype);
		    }
		  yyvsp[-2].ftype.t = begin_class_definition (TREE_TYPE (yyvsp[-2].ftype.t)); 
		  check_class_key (current_aggr, yyvsp[-2].ftype.t);
                  current_aggr = NULL_TREE; ;
    break;}
case 509:
#line 2321 "parse.y"
{ 
		  int semi;
		  tree t;

		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';

		  t = finish_class_definition (yyvsp[-6].ftype.t, yyvsp[0].ttype, semi, yyvsp[-6].ftype.new_type_flag);
		  yyval.ttype = t;

		  /* restore current_aggr */
		  current_aggr = TREE_CODE (t) != RECORD_TYPE
				 ? union_type_node
				 : CLASSTYPE_DECLARED_CLASS (t)
				 ? class_type_node : record_type_node;
		;
    break;}
case 510:
#line 2339 "parse.y"
{
		  done_pending_defargs ();
		  begin_inline_definitions ();
		;
    break;}
case 511:
#line 2344 "parse.y"
{
		  finish_inline_definitions ();
		  yyval.ftype.t = yyvsp[-3].ttype;
		  yyval.ftype.new_type_flag = 1; 
		;
    break;}
case 512:
#line 2350 "parse.y"
{
		  yyval.ftype.t = TREE_TYPE (yyvsp[0].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;
		  check_class_key (current_aggr, yyval.ftype.t);
		;
    break;}
case 516:
#line 2365 "parse.y"
{ if (pedantic && !in_system_header)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 518:
#line 2372 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 519:
#line 2374 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 520:
#line 2376 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 521:
#line 2378 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 522:
#line 2380 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 523:
#line 2385 "parse.y"
{
		  current_aggr = yyvsp[-1].ttype;
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 524:
#line 2390 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 525:
#line 2395 "parse.y"
{
		  current_aggr = yyvsp[-3].ttype;
		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 526:
#line 2400 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ttype = build_tree_list (global_namespace, yyvsp[0].ttype);
		;
    break;}
case 527:
#line 2408 "parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 528:
#line 2413 "parse.y"
{ 
		  current_aggr = yyvsp[-2].ttype; 
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 529:
#line 2418 "parse.y"
{ 
		  current_aggr = yyvsp[-3].ttype; 
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 530:
#line 2426 "parse.y"
{
		  yyval.ftype.t = handle_class_head (current_aggr,
					    TREE_PURPOSE (yyvsp[0].ttype), TREE_VALUE (yyvsp[0].ttype),
					    0, &yyval.ftype.new_type_flag);
		;
    break;}
case 531:
#line 2432 "parse.y"
{
		  current_aggr = yyvsp[-1].ttype;
		  yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (current_aggr, yyvsp[0].ttype, 0));
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 532:
#line 2438 "parse.y"
{
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 533:
#line 2446 "parse.y"
{
		  yyungetc ('{', 1);
		  yyval.ftype.t = handle_class_head (current_aggr,
					    TREE_PURPOSE (yyvsp[-1].ttype), TREE_VALUE (yyvsp[-1].ttype),
					    1, &yyval.ftype.new_type_flag);
		;
    break;}
case 534:
#line 2453 "parse.y"
{
		  yyungetc (':', 1);
		  yyval.ftype.t = handle_class_head (current_aggr,
					    TREE_PURPOSE (yyvsp[-1].ttype), TREE_VALUE (yyvsp[-1].ttype),
					    1, &yyval.ftype.new_type_flag);
		;
    break;}
case 535:
#line 2460 "parse.y"
{
		  yyungetc ('{', 1);
		  yyval.ftype.t = yyvsp[-1].ttype;
		  yyval.ftype.new_type_flag = 0;
		  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == RECORD_TYPE)
		    /* We might be specializing a template with a different
		       class-key.  */
		    CLASSTYPE_DECLARED_CLASS (TREE_TYPE (yyvsp[-1].ttype))
		      = (current_aggr == class_type_node);
		;
    break;}
case 536:
#line 2471 "parse.y"
{
		  yyungetc (':', 1);
		  yyval.ftype.t = yyvsp[-1].ttype;
		  yyval.ftype.new_type_flag = 0;
		  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == RECORD_TYPE)
		    /* We might be specializing a template with a different
		       class-key.  */
		    CLASSTYPE_DECLARED_CLASS (TREE_TYPE (yyvsp[-1].ttype))
		      = (current_aggr == class_type_node);
		;
    break;}
case 537:
#line 2482 "parse.y"
{
		  yyungetc ('{', 1);
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (current_aggr,
					    NULL_TREE, yyvsp[-1].ttype,
					    1, &yyval.ftype.new_type_flag);
		;
    break;}
case 538:
#line 2490 "parse.y"
{
		  yyungetc (':', 1);
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (current_aggr,
					    NULL_TREE, yyvsp[-1].ttype,
					    1, &yyval.ftype.new_type_flag);
		;
    break;}
case 539:
#line 2498 "parse.y"
{
		  current_aggr = yyvsp[-1].ttype;
		  yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (yyvsp[-1].ttype, make_anon_name (), 0));
		  yyval.ftype.new_type_flag = 0;
		  yyungetc ('{', 1);
		;
    break;}
case 540:
#line 2508 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 541:
#line 2510 "parse.y"
{ error ("no bases given following `:'");
		  yyval.ttype = NULL_TREE; ;
    break;}
case 542:
#line 2513 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 544:
#line 2519 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 545:
#line 2524 "parse.y"
{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ;
    break;}
case 546:
#line 2526 "parse.y"
{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 547:
#line 2531 "parse.y"
{ if (!TYPE_P (yyval.ttype))
		    yyval.ttype = error_mark_node; ;
    break;}
case 548:
#line 2534 "parse.y"
{ yyval.ttype = TREE_TYPE (yyval.ttype); ;
    break;}
case 550:
#line 2540 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    error ("`%D' access", yyvsp[-1].ttype);
		  yyval.ttype = access_default_virtual_node; ;
    break;}
case 551:
#line 2544 "parse.y"
{
		  if (yyvsp[-2].ttype != access_default_virtual_node)
		    error ("multiple access specifiers");
		  else if (yyvsp[-1].ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyvsp[-1].ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else /* $2 == access_private_node */
		    yyval.ttype = access_private_virtual_node;
		;
    break;}
case 552:
#line 2555 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    error ("`%D' access", yyvsp[-1].ttype);
		  else if (yyval.ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyval.ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else if (yyval.ttype == access_private_node)
		    yyval.ttype = access_private_virtual_node;
		  else
		    error ("multiple `virtual' specifiers");
		;
    break;}
case 557:
#line 2576 "parse.y"
{
		  current_access_specifier = yyvsp[-1].ttype;
                ;
    break;}
case 558:
#line 2585 "parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		  current_aggr = NULL_TREE;
		  reset_type_access_control ();
		;
    break;}
case 559:
#line 2591 "parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		  current_aggr = NULL_TREE;
		  reset_type_access_control ();
		;
    break;}
case 561:
#line 2601 "parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 562:
#line 2606 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 563:
#line 2608 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 564:
#line 2610 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 565:
#line 2612 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 566:
#line 2614 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 567:
#line 2616 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 568:
#line 2619 "parse.y"
{  
		  if (yyvsp[0].ttype)
		    yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
		  else
		    /* The component was already processed.  */
		    yyval.ttype = NULL_TREE;

		  finish_template_decl (yyvsp[-1].ttype);
		;
    break;}
case 569:
#line 2629 "parse.y"
{ 
		  yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); 
		  finish_template_decl (yyvsp[-2].ttype);
		;
    break;}
case 570:
#line 2634 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 571:
#line 2642 "parse.y"
{
		  /* Most of the productions for component_decl only
		     allow the creation of one new member, so we call
		     finish_member_declaration in component_decl_list.
		     For this rule and the next, however, there can be
		     more than one member, e.g.:

		       int i, j;

		     and we need the first member to be fully
		     registered before the second is processed.
		     Therefore, the rules for components take care of
		     this processing.  To avoid registering the
		     components more than once, we send NULL_TREE up
		     here; that lets finish_member_declaration know
		     that there is nothing to do.  */
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ftype.t);
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 572:
#line 2663 "parse.y"
{ 
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ftype.t);
		  yyval.ttype = NULL_TREE; 
		;
    break;}
case 573:
#line 2669 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 574:
#line 2671 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 575:
#line 2673 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 576:
#line 2675 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 577:
#line 2686 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs);
		  yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  chainon (yyvsp[-1].ttype, attrs)); ;
    break;}
case 578:
#line 2691 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 579:
#line 2693 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 580:
#line 2700 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 581:
#line 2702 "parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 1;
		;
    break;}
case 582:
#line 2709 "parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 2;
		;
    break;}
case 583:
#line 2720 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 584:
#line 2722 "parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 1;
		;
    break;}
case 585:
#line 2729 "parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 2;
		;
    break;}
case 590:
#line 2750 "parse.y"
{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
				     yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 591:
#line 2753 "parse.y"
{ yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
					yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 592:
#line 2759 "parse.y"
{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
				     yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 593:
#line 2762 "parse.y"
{ yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
				     yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 594:
#line 2765 "parse.y"
{ yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
					yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 595:
#line 2768 "parse.y"
{ yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t,
					yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 596:
#line 2774 "parse.y"
{ yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 597:
#line 2776 "parse.y"
{ yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 598:
#line 2781 "parse.y"
{ yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 599:
#line 2783 "parse.y"
{ yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 600:
#line 2785 "parse.y"
{ yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 605:
#line 2804 "parse.y"
{ build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ;
    break;}
case 606:
#line 2806 "parse.y"
{ build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ;
    break;}
case 607:
#line 2812 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 608:
#line 2815 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 609:
#line 2820 "parse.y"
{
		  if (pedantic)
		    pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new");
		  yyval.ftype.t = build_nt (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
		  yyval.ftype.t = build_tree_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
		;
    break;}
case 610:
#line 2831 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 611:
#line 2833 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 612:
#line 2838 "parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 613:
#line 2841 "parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 614:
#line 2844 "parse.y"
{ yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 615:
#line 2847 "parse.y"
{ yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 616:
#line 2857 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 617:
#line 2859 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 618:
#line 2861 "parse.y"
{ yyval.ttype = empty_parms (); ;
    break;}
case 619:
#line 2863 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 621:
#line 2871 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 622:
#line 2881 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 623:
#line 2883 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 624:
#line 2885 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 625:
#line 2887 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 626:
#line 2889 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 628:
#line 2897 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 629:
#line 2899 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 630:
#line 2901 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 631:
#line 2903 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 632:
#line 2905 "parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
		  yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 634:
#line 2913 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
		      maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
		    }
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 635:
#line 2923 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 638:
#line 2936 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 639:
#line 2941 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 641:
#line 2950 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 642:
#line 2959 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 643:
#line 2961 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 644:
#line 2963 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 645:
#line 2965 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 646:
#line 2967 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 648:
#line 2975 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 649:
#line 2977 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 650:
#line 2979 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 651:
#line 2981 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 652:
#line 2983 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 654:
#line 2991 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 655:
#line 2993 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 656:
#line 2995 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 657:
#line 2997 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 658:
#line 2999 "parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
    break;}
case 659:
#line 3001 "parse.y"
{ enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;;
    break;}
case 660:
#line 3003 "parse.y"
{ yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype);
		  enter_scope_of (yyval.ttype); 
		;
    break;}
case 661:
#line 3007 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  enter_scope_of (yyval.ttype);
		;
    break;}
case 662:
#line 3015 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 663:
#line 3018 "parse.y"
{ got_scope = NULL_TREE;
 		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 664:
#line 3024 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 665:
#line 3027 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 667:
#line 3034 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 668:
#line 3039 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 669:
#line 3041 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 670:
#line 3043 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 675:
#line 3055 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 676:
#line 3057 "parse.y"
{ got_scope = yyval.ttype 
		    = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ;
    break;}
case 677:
#line 3061 "parse.y"
{ got_scope = yyval.ttype 
		    = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ;
    break;}
case 678:
#line 3064 "parse.y"
{ got_scope = yyval.ttype 
		    = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ;
    break;}
case 679:
#line 3072 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lastiddecl;
		      maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
		    }
		  got_scope = yyval.ttype =
		    complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
		;
    break;}
case 680:
#line 3082 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 681:
#line 3088 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 682:
#line 3094 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 684:
#line 3100 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 685:
#line 3105 "parse.y"
{
		  if (TYPE_P (yyvsp[-1].ttype))
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 686:
#line 3118 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
    break;}
case 687:
#line 3120 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); ;
    break;}
case 688:
#line 3122 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, tf_error); ;
    break;}
case 689:
#line 3127 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == TYPE_DECL)
		    yyval.ttype = TREE_TYPE (yyvsp[0].ttype);
		;
    break;}
case 690:
#line 3134 "parse.y"
{
		  if (TYPE_P (yyvsp[-1].ttype))
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 691:
#line 3147 "parse.y"
{ got_scope = yyval.ttype 
		    = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ;
    break;}
case 692:
#line 3150 "parse.y"
{ got_scope = yyval.ttype 
		    = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ;
    break;}
case 693:
#line 3158 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL)
		    yyval.ttype = lastiddecl;

		  /* Retrieve the type for the identifier, which might involve
		     some computation. */
		  got_scope = complete_type (TREE_TYPE (yyval.ttype));

		  if (yyval.ttype == error_mark_node)
		    error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
		;
    break;}
case 694:
#line 3170 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL)
		    yyval.ttype = lastiddecl;
		  got_scope = complete_type (TREE_TYPE (yyval.ttype));
		;
    break;}
case 695:
#line 3176 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 698:
#line 3180 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 699:
#line 3189 "parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 700:
#line 3194 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 702:
#line 3203 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 703:
#line 3208 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 704:
#line 3210 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 705:
#line 3217 "parse.y"
{ got_scope = void_type_node; ;
    break;}
case 706:
#line 3223 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 707:
#line 3225 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 708:
#line 3227 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 709:
#line 3229 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 710:
#line 3231 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 711:
#line 3235 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 713:
#line 3244 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 714:
#line 3246 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 716:
#line 3252 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 717:
#line 3262 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 718:
#line 3264 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 719:
#line 3266 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 720:
#line 3268 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 721:
#line 3270 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 722:
#line 3272 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 723:
#line 3274 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 724:
#line 3276 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 725:
#line 3278 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 726:
#line 3282 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 728:
#line 3291 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 729:
#line 3294 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 730:
#line 3296 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 731:
#line 3298 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 732:
#line 3300 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 733:
#line 3302 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 734:
#line 3304 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 735:
#line 3306 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 736:
#line 3308 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 737:
#line 3310 "parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 744:
#line 3333 "parse.y"
{ if (pedantic)
		    pedwarn ("ISO C++ forbids label declarations"); ;
    break;}
case 747:
#line 3344 "parse.y"
{ 
		  while (yyvsp[-1].ttype)
		    {
		      finish_label_decl (TREE_VALUE (yyvsp[-1].ttype));
		      yyvsp[-1].ttype = TREE_CHAIN (yyvsp[-1].ttype);
		    }
		;
    break;}
case 748:
#line 3355 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 749:
#line 3357 "parse.y"
{ STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype;
		  finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 750:
#line 3363 "parse.y"
{ last_expr_type = NULL_TREE; ;
    break;}
case 751:
#line 3368 "parse.y"
{ yyval.ttype = begin_if_stmt ();
		  cond_stmt_keyword = "if"; ;
    break;}
case 752:
#line 3371 "parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 753:
#line 3373 "parse.y"
{ yyval.ttype = yyvsp[-3].ttype;
		  finish_then_clause (yyvsp[-3].ttype); ;
    break;}
case 755:
#line 3380 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 756:
#line 3382 "parse.y"
{ STMT_LINENO (yyvsp[-2].ttype) = yyvsp[-1].itype;
		  if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype;
		  finish_compound_stmt (0, yyvsp[-2].ttype); ;
    break;}
case 758:
#line 3390 "parse.y"
{ if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; ;
    break;}
case 759:
#line 3395 "parse.y"
{ finish_stmt ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 760:
#line 3398 "parse.y"
{ yyval.ttype = finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 761:
#line 3400 "parse.y"
{ begin_else_clause (); ;
    break;}
case 762:
#line 3402 "parse.y"
{ 
		  yyval.ttype = yyvsp[-3].ttype;
		  finish_else_clause (yyvsp[-3].ttype); 
		  finish_if_stmt ();
		;
    break;}
case 763:
#line 3408 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  finish_if_stmt (); ;
    break;}
case 764:
#line 3411 "parse.y"
{
		  yyval.ttype = begin_while_stmt ();
		  cond_stmt_keyword = "while";
		;
    break;}
case 765:
#line 3416 "parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 766:
#line 3418 "parse.y"
{ yyval.ttype = yyvsp[-3].ttype;
		  finish_while_stmt (yyvsp[-3].ttype); ;
    break;}
case 767:
#line 3421 "parse.y"
{ yyval.ttype = begin_do_stmt (); ;
    break;}
case 768:
#line 3423 "parse.y"
{
		  finish_do_body (yyvsp[-2].ttype);
		  cond_stmt_keyword = "do";
		;
    break;}
case 769:
#line 3428 "parse.y"
{ yyval.ttype = yyvsp[-5].ttype;
		  finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 770:
#line 3431 "parse.y"
{ yyval.ttype = begin_for_stmt (); ;
    break;}
case 771:
#line 3433 "parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
    break;}
case 772:
#line 3435 "parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 773:
#line 3437 "parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
    break;}
case 774:
#line 3439 "parse.y"
{ yyval.ttype = yyvsp[-10].ttype;
		  finish_for_stmt (yyvsp[-10].ttype); ;
    break;}
case 775:
#line 3442 "parse.y"
{ yyval.ttype = begin_switch_stmt (); ;
    break;}
case 776:
#line 3444 "parse.y"
{ finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ;
    break;}
case 777:
#line 3446 "parse.y"
{ yyval.ttype = yyvsp[-5].ttype;
		  finish_switch_stmt (yyvsp[-5].ttype); ;
    break;}
case 778:
#line 3449 "parse.y"
{ yyval.ttype = finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 779:
#line 3451 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 780:
#line 3453 "parse.y"
{ yyval.ttype = finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 781:
#line 3455 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 782:
#line 3457 "parse.y"
{ yyval.ttype = finish_case_label (NULL_TREE, NULL_TREE); ;
    break;}
case 783:
#line 3459 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 784:
#line 3461 "parse.y"
{ yyval.ttype = finish_break_stmt (); ;
    break;}
case 785:
#line 3463 "parse.y"
{ yyval.ttype = finish_continue_stmt (); ;
    break;}
case 786:
#line 3465 "parse.y"
{ yyval.ttype = finish_return_stmt (NULL_TREE); ;
    break;}
case 787:
#line 3467 "parse.y"
{ yyval.ttype = finish_return_stmt (yyvsp[-1].ttype); ;
    break;}
case 788:
#line 3469 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
					NULL_TREE);
		  ASM_INPUT_P (yyval.ttype) = 1; ;
    break;}
case 789:
#line 3474 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 790:
#line 3478 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 791:
#line 3480 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 792:
#line 3484 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 793:
#line 3487 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 794:
#line 3490 "parse.y"
{ yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ;
    break;}
case 795:
#line 3492 "parse.y"
{ 
		  if (pedantic)
		    pedwarn ("ISO C++ forbids computed gotos");
		  yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype);
		;
    break;}
case 796:
#line 3498 "parse.y"
{ yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ;
    break;}
case 797:
#line 3500 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 798:
#line 3502 "parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 799:
#line 3506 "parse.y"
{ finish_stmt ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 800:
#line 3509 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 801:
#line 3511 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 802:
#line 3513 "parse.y"
{ do_local_using_decl (yyvsp[0].ttype);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 803:
#line 3516 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 804:
#line 3521 "parse.y"
{ yyval.ttype = begin_function_try_block (); ;
    break;}
case 805:
#line 3523 "parse.y"
{ finish_function_try_block (yyvsp[-1].ttype); ;
    break;}
case 806:
#line 3525 "parse.y"
{ finish_function_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 807:
#line 3530 "parse.y"
{ yyval.ttype = begin_try_block (); ;
    break;}
case 808:
#line 3532 "parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
    break;}
case 809:
#line 3534 "parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 812:
#line 3541 "parse.y"
{ /* Generate a fake handler block to avoid later aborts. */
		  tree fake_handler = begin_handler ();
		  finish_handler_parms (NULL_TREE, fake_handler);
		  finish_handler (fake_handler);
		  yyval.ttype = fake_handler;

		  error ("must have at least one catch per try block");
		;
    break;}
case 813:
#line 3553 "parse.y"
{ yyval.ttype = begin_handler (); ;
    break;}
case 814:
#line 3555 "parse.y"
{ finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 815:
#line 3557 "parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
    break;}
case 818:
#line 3567 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 819:
#line 3583 "parse.y"
{ 
		  check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
		  yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t),
					    TREE_VALUE (yyvsp[-1].ftype.t));
		;
    break;}
case 820:
#line 3592 "parse.y"
{ finish_label_stmt (yyvsp[-1].ttype); ;
    break;}
case 821:
#line 3594 "parse.y"
{ finish_label_stmt (yyvsp[-1].ttype); ;
    break;}
case 822:
#line 3596 "parse.y"
{ finish_label_stmt (yyvsp[-1].ttype); ;
    break;}
case 823:
#line 3598 "parse.y"
{ finish_label_stmt (yyvsp[-1].ttype); ;
    break;}
case 824:
#line 3603 "parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 826:
#line 3606 "parse.y"
{ if (pedantic)
		    pedwarn ("ISO C++ forbids compound statements inside for initializations");
		;
    break;}
case 827:
#line 3615 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 829:
#line 3621 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 831:
#line 3624 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 832:
#line 3631 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 835:
#line 3638 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 836:
#line 3643 "parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ;
    break;}
case 837:
#line 3645 "parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ;
    break;}
case 838:
#line 3650 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);;
    break;}
case 839:
#line 3652 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
    break;}
case 840:
#line 3663 "parse.y"
{
		  yyval.ttype = empty_parms();
		;
    break;}
case 842:
#line 3668 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 843:
#line 3676 "parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
    break;}
case 844:
#line 3678 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 845:
#line 3681 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 846:
#line 3683 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 1); ;
    break;}
case 847:
#line 3686 "parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
    break;}
case 848:
#line 3688 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 849:
#line 3698 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 0); 
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 850:
#line 3713 "parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 851:
#line 3715 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 854:
#line 3726 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 855:
#line 3729 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 856:
#line 3732 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 857:
#line 3735 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 858:
#line 3737 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 860:
#line 3743 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 861:
#line 3753 "parse.y"
{ yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		  yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 862:
#line 3756 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 863:
#line 3759 "parse.y"
{ yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 864:
#line 3763 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 865:
#line 3766 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 866:
#line 3769 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 867:
#line 3775 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 868:
#line 3778 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
    break;}
case 871:
#line 3789 "parse.y"
{ see_typename (); ;
    break;}
case 872:
#line 3794 "parse.y"
{
		  error ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
		;
    break;}
case 873:
#line 3799 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == SCOPE_REF)
		    {
		      if (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
			  || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM)
			error ("`%E' is not a type, use `typename %E' to make it one", yyval.ttype);
		      else
			error ("no type `%D' in `%T'", TREE_OPERAND (yyval.ttype, 1), TREE_OPERAND (yyval.ttype, 0));
		    }
		  else
		    error ("type specifier omitted for parameter `%E'", yyval.ttype);
		  yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
		;
    break;}
case 874:
#line 3816 "parse.y"
{
                  error("'%D' is used as a type, but is not defined as a type.", yyvsp[-4].ttype);
                  yyvsp[-2].ttype = error_mark_node;
		;
    break;}
case 875:
#line 3824 "parse.y"
{ ;
    break;}
case 877:
#line 3830 "parse.y"
{ ;
    break;}
case 879:
#line 3836 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 880:
#line 3838 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 881:
#line 3840 "parse.y"
{ yyval.ttype = empty_except_spec; ;
    break;}
case 882:
#line 3845 "parse.y"
{
		  check_for_new_type ("exception specifier", yyvsp[0].ftype);
		  yyval.ttype = groktypename (yyvsp[0].ftype.t);
		;
    break;}
case 883:
#line 3850 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 884:
#line 3855 "parse.y"
{ yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ;
    break;}
case 885:
#line 3857 "parse.y"
{ yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ;
    break;}
case 886:
#line 3862 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 887:
#line 3864 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 888:
#line 3866 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 889:
#line 3868 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 890:
#line 3875 "parse.y"
{
	  saved_scopes = tree_cons (got_scope, got_object, saved_scopes);
	  TREE_LANG_FLAG_0 (saved_scopes) = looking_for_typename;
	  /* We look for conversion-type-id's in both the class and current
	     scopes, just as for ID in 'ptr->ID::'.  */
	  looking_for_typename = 1;
	  got_object = got_scope;
          got_scope = NULL_TREE;
	;
    break;}
case 891:
#line 3887 "parse.y"
{ got_scope = TREE_PURPOSE (saved_scopes);
          got_object = TREE_VALUE (saved_scopes);
	  looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes);
          saved_scopes = TREE_CHAIN (saved_scopes);
	;
    break;}
case 892:
#line 3896 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (MULT_EXPR)); ;
    break;}
case 893:
#line 3898 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (TRUNC_DIV_EXPR)); ;
    break;}
case 894:
#line 3900 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (TRUNC_MOD_EXPR)); ;
    break;}
case 895:
#line 3902 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (PLUS_EXPR)); ;
    break;}
case 896:
#line 3904 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (MINUS_EXPR)); ;
    break;}
case 897:
#line 3906 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (BIT_AND_EXPR)); ;
    break;}
case 898:
#line 3908 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (BIT_IOR_EXPR)); ;
    break;}
case 899:
#line 3910 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (BIT_XOR_EXPR)); ;
    break;}
case 900:
#line 3912 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (BIT_NOT_EXPR)); ;
    break;}
case 901:
#line 3914 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (COMPOUND_EXPR)); ;
    break;}
case 902:
#line 3916 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ;
    break;}
case 903:
#line 3918 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (LT_EXPR)); ;
    break;}
case 904:
#line 3920 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (GT_EXPR)); ;
    break;}
case 905:
#line 3922 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ;
    break;}
case 906:
#line 3924 "parse.y"
{ yyval.ttype = frob_opname (ansi_assopname (yyvsp[-1].code)); ;
    break;}
case 907:
#line 3926 "parse.y"
{ yyval.ttype = frob_opname (ansi_assopname (NOP_EXPR)); ;
    break;}
case 908:
#line 3928 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ;
    break;}
case 909:
#line 3930 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ;
    break;}
case 910:
#line 3932 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (POSTINCREMENT_EXPR)); ;
    break;}
case 911:
#line 3934 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (PREDECREMENT_EXPR)); ;
    break;}
case 912:
#line 3936 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (TRUTH_ANDIF_EXPR)); ;
    break;}
case 913:
#line 3938 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (TRUTH_ORIF_EXPR)); ;
    break;}
case 914:
#line 3940 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (TRUTH_NOT_EXPR)); ;
    break;}
case 915:
#line 3942 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (COND_EXPR)); ;
    break;}
case 916:
#line 3944 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ;
    break;}
case 917:
#line 3946 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (COMPONENT_REF)); ;
    break;}
case 918:
#line 3948 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (MEMBER_REF)); ;
    break;}
case 919:
#line 3950 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (CALL_EXPR)); ;
    break;}
case 920:
#line 3952 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (ARRAY_REF)); ;
    break;}
case 921:
#line 3954 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (NEW_EXPR)); ;
    break;}
case 922:
#line 3956 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (DELETE_EXPR)); ;
    break;}
case 923:
#line 3958 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (VEC_NEW_EXPR)); ;
    break;}
case 924:
#line 3960 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (VEC_DELETE_EXPR)); ;
    break;}
case 925:
#line 3962 "parse.y"
{ yyval.ttype = frob_opname (grokoptypename (yyvsp[-2].ftype.t, yyvsp[-1].ttype)); ;
    break;}
case 926:
#line 3964 "parse.y"
{ yyval.ttype = frob_opname (ansi_opname (ERROR_MARK)); ;
    break;}
case 927:
#line 3971 "parse.y"
{ if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  yyval.itype = lineno; ;
    break;}
}

#line 705 "/usr/share/bison/bison.simple"


  yyvsp -= yylen;
  yyssp -= yylen;
#if YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG
  if (yydebug)
    {
      short *yyssp1 = yyss - 1;
      YYFPRINTF (stderr, "state stack now");
      while (yyssp1 != yyssp)
	YYFPRINTF (stderr, " %d", *++yyssp1);
      YYFPRINTF (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;
#if YYLSP_NEEDED
  *++yylsp = yyloc;
#endif

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  YYSIZE_T yysize = 0;
	  char *yymsg;
	  int yyx, yycount;

	  yycount = 0;
	  /* Start YYX at -YYN if negative to avoid negative indexes in
	     YYCHECK.  */
	  for (yyx = yyn < 0 ? -yyn : 0;
	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
	    if (yycheck[yyx + yyn] == yyx)
	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
	  yysize += yystrlen ("parse error, unexpected ") + 1;
	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
	  yymsg = (char *) YYSTACK_ALLOC (yysize);
	  if (yymsg != 0)
	    {
	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);

	      if (yycount < 5)
		{
		  yycount = 0;
		  for (yyx = yyn < 0 ? -yyn : 0;
		       yyx < (int) (sizeof (yytname) / sizeof (char *));
		       yyx++)
		    if (yycheck[yyx + yyn] == yyx)
		      {
			const char *yyq = ! yycount ? ", expecting " : " or ";
			yyp = yystpcpy (yyp, yyq);
			yyp = yystpcpy (yyp, yytname[yyx]);
			yycount++;
		      }
		}
	      yyerror (yymsg);
	      YYSTACK_FREE (yymsg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exhausted");
	}
      else
#endif /* defined (YYERROR_VERBOSE) */
	yyerror ("parse error");
    }
  goto yyerrlab1;


/*--------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action |
`--------------------------------------------------*/
yyerrlab1:
  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;
      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
		  yychar, yytname[yychar1]));
      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;


/*-------------------------------------------------------------------.
| yyerrdefault -- current state does not do anything special for the |
| error token.                                                       |
`-------------------------------------------------------------------*/
yyerrdefault:
#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */

  /* If its default is to accept any token, ok.  Otherwise pop it.  */
  yyn = yydefact[yystate];
  if (yyn)
    goto yydefault;
#endif


/*---------------------------------------------------------------.
| yyerrpop -- pop the current state because it cannot handle the |
| error token                                                    |
`---------------------------------------------------------------*/
yyerrpop:
  if (yyssp == yyss)
    YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#if YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG
  if (yydebug)
    {
      short *yyssp1 = yyss - 1;
      YYFPRINTF (stderr, "Error: state stack now");
      while (yyssp1 != yyssp)
	YYFPRINTF (stderr, " %d", *++yyssp1);
      YYFPRINTF (stderr, "\n");
    }
#endif

/*--------------.
| yyerrhandle.  |
`--------------*/
yyerrhandle:
  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

  YYDPRINTF ((stderr, "Shifting error token, "));

  *++yyvsp = yylval;
#if YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

/*---------------------------------------------.
| yyoverflowab -- parser overflow comes here.  |
`---------------------------------------------*/
yyoverflowlab:
  yyerror ("parser stack overflow");
  yyresult = 2;
  /* Fall through.  */

yyreturn:
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
  return yyresult;
}
#line 3975 "parse.y"


#ifdef SPEW_DEBUG
const char *
debug_yytranslate (value)
    int value;
{
  return yytname[YYTRANSLATE (value)];
}

#endif
